Share via


方法 : オーディオ デバイスの列挙

この例では、アプリケーション定義の基準に適合するオーディオ デバイスを使用するために XAudio2 を初期化する方法を示します。GetDeviceCount メソッドおよび GetDeviceDetails メソッドを使用して、システム上で利用可能なオーディオ デバイスのプロパティを調べます。このプロセスにより、ゲームの要件に最も近いデバイスを選択することができます。受け入れ可能なデバイスが見つかると、デバイス番号が CreateMasteringVoice 関数に渡されます。

利用可能なオーディオ デバイスを列挙するには

  1. XAudio2Create 関数を使用して、XAudio2 エンジンのインスタンスを作成します。

    if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
        return hr;
    
  2. GetDeviceCount 関数で使用可能なオーディオ デバイスの数を調べます。

    UINT32 deviceCount;
    
    pXAudio2->GetDeviceCount(&deviceCount);
    
  3. 使用可能なデバイスを順に調べ、最も適切なデバイスを決めます。

    オーディオ デバイスの詳細は、GetDeviceDetails 関数で取得します。

    XAUDIO2_DEVICE_DETAILS deviceDetails;
    int preferredDevice = 0;
    
    for (unsigned int i = 0; i < deviceCount; i++)
    {
       pXAudio2->GetDeviceDetails(i,&deviceDetails);
       if (deviceDetails.OutputFormat.Format.nChannels > 2)
       {
           preferredDevice = i;
       }
    }
    
  4. 最適なデバイスが見つかると、そのインデックスが CreateMasteringVoice 関数に渡されます。

    IXAudio2MasteringVoice* pMasterVoice = NULL;
    
    if ( FAILED(hr = pXAudio2->CreateMasteringVoice( &pMasterVoice, XAUDIO2_DEFAULT_CHANNELS,
                                XAUDIO2_DEFAULT_SAMPLERATE, 0, preferredDevice, NULL ) ) )
        return hr;
    

関連トピック