次の方法で共有


AUDCLNT_STREAMFLAGS_XXX定数

ストリームの初期化中にクライアントがオーディオ ストリームに割り当てることができる特性を指定します。

定数/値 説明
AUDCLNT_STREAMFLAGS_CROSSPROCESS
0x00010000
オーディオ ストリームは、クロスプロセス オーディオ セッションのメンバーになります。 詳細については、「解説」を参照してください。
AUDCLNT_STREAMFLAGS_LOOPBACK
0x00020000
オーディオ ストリームはループバック モードで動作します。 詳細については、「解説」を参照してください。
AUDCLNT_STREAMFLAGS_EVENTCALLBACK
0x00040000
クライアントによるオーディオ バッファーの処理は、イベント ドリブンになります。 詳細については、「解説」を参照してください。
AUDCLNT_STREAMFLAGS_NOPERSIST
0x00080000
オーディオ セッションの音量とミュートの設定は、アプリケーションの再起動後も保持されません。 詳細については、「解説」を参照してください。
AUDCLNT_STREAMFLAGS_RATEADJUST
0x00100000
この定数は、Windows 7 の新機能です。 ストリームのサンプル レートは、アプリケーションで指定されたレートに調整されます。 詳細については、「解説」を参照してください。
AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM
0x80000000
IAudioClient::Initialize に指定された非圧縮形式とオーディオ エンジン ミックス形式の間で変換するために、必要に応じてチャネル マトリックスとサンプル レート コンバーターが挿入されます。
AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY
0x08000000
AUDCLNT_STREAMFLAGS_AUTOCONVERTPCMで使用する場合は、既定の変換よりも品質が高く、パフォーマンス コストが高いサンプル レート コンバーターが使用されます。 これは、オーディオが、無音のポンプやメーターの設定などの他のシナリオとは対照的に、人間が最終的に聞く目的である場合に使用する必要があります。

解説

IAudioClient::Initialize メソッドとDIRECTX_AUDIO_ACTIVATION_PARAMS構造体は、AUDCLNT_STREAMFLAGS_XXX定数を使用します。

AUDCLNT_STREAMFLAGS_CROSSPROCESS フラグは、ストリームのオーディオ セッションがクロスプロセス セッションであることを示します。 クロスプロセス セッションでは、複数のプロセスからのストリームを受け入れることがあります。 2 つの異なるプロセスの 2 つのアプリケーションが同じセッション GUID で IAudioClient::Initialize を呼び出し、両方のアプリケーションで AUDCLNT_SHAREMODE_CROSSPROCESS フラグを設定した場合、オーディオ エンジンはストリームを同じクロスプロセス セッションに割り当てます。 このフラグは、クロスプロセス セッションではなく、プロセス固有のセッションにストリームを割り当てる既定の動作をオーバーライドします。 AUDCLNT_STREAMFLAGS_CROSSPROCESS フラグ ビットは排他モードと互換性がありません。 クロスプロセス セッションの詳細については、「 オーディオ セッション」を参照してください。

AUDCLNT_STREAMFLAGS_LOOPBACK フラグを使用すると、ループバック記録が有効になります。 ループバック記録では、オーディオ エンジンは、レンダリング エンドポイント デバイスによって再生されているオーディオ ストリームをオーディオ エンドポイント バッファーにコピーして、 WASAPI クライアントがストリームをキャプチャできるようにします。 このフラグが設定されている場合、 IAudioClient::Initialize メソッドはレンダリング デバイスでキャプチャ バッファーを開こうとします。 このフラグは、レンダリング デバイスに対してのみ有効であり、 Initialize 呼び出しによって ShareMode パラメーターがAUDCLNT_SHAREMODE_SHAREDに設定されている場合にのみ有効です。 それ以外の場合、 Initialize 呼び出しは失敗します。 呼び出しが成功した場合、クライアントは IAudioClient::GetService メソッドを呼び出して、レンダリング デバイス上の IAudioCaptureClient インターフェイスを取得できます。 詳細については、「 ループバック記録」を参照してください。

AUDCLNT_STREAMFLAGS_EVENTCALLBACK フラグを使用すると、イベント ドリブン バッファリングが有効になります。 クライアントがストリームを初期化する IAudioClient::Initialize の呼び出しでこのフラグを設定する場合、クライアントは後で IAudioClient::SetEventHandle メソッドを呼び出してストリームのイベント ハンドルを指定する必要があります。 ストリームの開始後、オーディオ エンジンは、バッファーがクライアントが処理する準備が整うたびにクライアントに通知するようにイベント ハンドルに通知します。 WASAPI では、レンダリング バッファーとキャプチャ バッファーの両方に対してイベント ドリブン バッファリングがサポートされています。 共有モード ストリームと排他モード ストリームの両方で、イベント ドリブン バッファリングを使用できます。 AUDCLNT_STREAMFLAGS_EVENTCALLBACK フラグを使用するコード例については、「 排他モード ストリーム」を参照してください。

AUDCLNT_STREAMFLAGS_NOPERSIST フラグは、レンダリング ストリームを含むセッションのボリュームとミュート設定の永続化を無効にします。 既定では、レンダリング セッションのボリューム レベルとミュート状態は、アプリケーションの再起動間で永続的です。 キャプチャ セッションのボリューム レベルとミュート状態は永続的ではありません。 セッション ボリュームとミュート設定の永続化の詳細については、「 オーディオ セッション」を参照してください。

AUDCLNT_STREAMFLAGS_RATEADJUST フラグを使用すると、アプリケーションは、ストリームのサンプル レートを設定するために使用される IAudioClockAdjustment インターフェイスへの参照を取得できます。 このインターフェイスへのポインターを取得するには、アプリケーションでこのフラグを使用してオーディオ クライアントを初期化し、IID_IAudioClockAdjustment識別子を指定して IAudioClient::GetService を呼び出す必要があります。 新しいサンプル レートを設定するには、 IAudioClockAdjustment::SetSampleRate を呼び出します。 このフラグは、レンダリング デバイスに対してのみ有効です。 それ以外の場合、 GetService 呼び出しはエラー コード AUDCLNT_E_WRONG_ENDPOINT_TYPEで失敗します。 また、アプリケーションでは、Initialize 呼び出し中に ShareMode パラメーターを AUDCLNT_SHAREMODE_SHARED に設定する必要があります。 オーディオ クライアントが共有モードでない場合、SetSampleRate は失敗します。

必要条件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー
Windows Server 2008 [デスクトップ アプリ |UWP アプリ]
Header
Audiosessiontypes.h

関連項目

コア オーディオ定数

IAudioCaptureClient インターフェイス

IAudioClient::GetService

IAudioClient::Initialize

IAudioClient::SetEventHandle