音を出すデバイスを変えたい!
»
ゴルフ練習場のチャージ機で、音声案内の出力場所を内容によって変更してほしいという要望を受けました。
具体的には、「お金を入れて下さい」のように、利用者に話しかける音声は、真正面のスピーカーから、
打席の状態が変化した際の音声のように、周囲の人々に意味のあるものは、
また別のスピーカーからというものです。
サウンドデバイスが複数あれば簡単だと思いましたが、
Windows はやっぱり難しかった・・・
私が調べた限りでは .NET Framework で簡単に対応する方法がなかったので、
ここだけWin32APIを使いました。
実験はこちらのコードを99%利用させていただきました。
http://social.msdn.microsoft.com/Forums/ja-JP/f949b6c5-fa6b-4bfe-861f-f899d6bb8bb1/visual-studio-2008cwave
winmmの APIを使う場合は、
waveOutOpen()の第2引数にデバイス番号を指定してあげれば、
複数のサウンドデバイスを選択して音声を再生できます。
WAVE_MAPPERを指定すれば、標準デバイスになります。
とりあえず実現できてよかった!
SpecialPR