PCサウンド出力のプログラミングインタフェースについて
■Windowsサウンド出力プログラムインタフェースについて
WindowsPCのスピーカーでサウンド(音声)を出力する場合、OSの管理機能を使うことが多いと思います。
音楽と光が連動する光音共演コンピュータのように、もし音声出力をプログラムでコントロールしようとした場合、MicroSoft社が提供するWaveOutAPI等を使うことになります。
筆者もWindowsPCのサウンド出力をコントロールする必要があり、調べましたので共有します。
下記に示すwaveOutGetDevCaps関数は、サウンド出力デバイスの性能を取得するものです。
この関数を呼び出すと、WaveOutCaps構造体にサウンド出力デバイスの情報が返されます。
この構造体の中のszPname[]がデバイスの製造メーカーを表す文字列です。複数の出力デバイスがある場合、それらを区別するために有力となる情報です。
dwSupportは、このサウンド出力デバイスのサポートに関する情報です。この中にWAVECAPS_VOLUMEというフラグがあります。このデバイスがプログラミングインタフェースから音量の制御ができるかを表します。筆者のPCで試したところ、なんとWAVECAPS_VOLUMEのフラグが立っていませんでした。プログラミングで音量の調整ができないようです。OSからの音量調整はできますが。サウンド出力をする場合には、上記API等を使ってプログラミングインタフェースがどのレベルで利用できるのか、事前に調査する必要があり浅生です。