CRI ADX  Last Updated: 2024-03-21 14:32 p
オーディオデバイスの選択

既定の動作

WASAPIを使用して音声を出力する場合、Atomライブラリは常に「既定のデバイス」に設定されているデバイスを使用して音声を出力します。
(アプリケーション実行中に既定のデバイスが変更された場合、変更を検知して自動で音声の出力先を変更します。)
そのため、アプリケーション開発者がアプリケーション実行中にデバイスの変更を検知する必要はありません。
また、サウンドデバイスが無効な場合でも、Atomライブラリは音声を出力せずに動作します。
(音声データ消費量をタイマーを元に計算し、可能な限り音声出力が有効な場合と同等の動作をエミュレートします。)
そのため、音声出力デバイスが使用できないケースであっても、アプリケーション側でAtomライブラリのAPI呼び出しを回避する必要はありません。
注意
音声出力にXAudio2を使用している場合、ユーザがデバイスを無効化したタイミングで音声の出力がミュートされます。
その後再度デバイスを挿し直したとしても、音声の再生は復帰しません。
アプリケーション実行中にデバイスが抜き差しされる可能性がある場合、音声の出力にWASAPIを使用してください。

明示的なデバイスの割り当て

criAtom_SetDeviceId_WASAPI 関数を使用することで、音声の出力先をアプリケーションから明示的に指定することも可能です。
既定のデバイス以外から音声を出力したい場合には、対象となるデバイスのIDをIMMDevice::GetId関数で取得し、::criAtom_SetDeviceId_WASAPI 関数で CRIATOM_SOUND_RENDERER_NATIVE との紐づけを行ってください。
注意
デバイスIDを明示的に指定した場合、当該デバイスが無効になった場合でも、デバイスの読み替えは行われません。
(指定したデバイスが無効になると、代替のデバイスが存在する場合でも、音声が出力されなくなります。)
デバイスの選択を既定の動作に戻す場合には、 CRIATOM_SOUND_RENDERER_NATIVE とハードウェアIDの紐づけを解除してください。
(デバイスIDにNULLを指定して criAtom_SetDeviceId_WASAPI 関数を実行してください。)