- - PR -
ボリュームコントロールをソフトで制御する方法について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-22 21:45
お世話になります。
今、XPで音声を鳴らすたびに、SpeakerをOnにし、音声の再生が終わったら、SpeakerをOffにする必要がありますが、ソフト的に制御方法がご存知でしたら、教えていただきたいですが。 DirectXで再生等はできますが、ハードの制御は出来ますか? 以上、宜しくお願いいたします。 |
|
投稿日時: 2005-03-23 20:53
こんばんわっ♪
やったことがないので、定かではないですが。。。 ミキサあたりじゃないでしょうか。 mixerSetControlDetails() かなにかで制御できませんかねぇ。 詳しくなくって、すみません。 |
|
投稿日時: 2005-03-24 11:56
松竹梅 様
ご返事ありがとうございました。まさにMixerのことです。大変参考になりました。 ただ、C#から単純な数値を取得する場合、簡単にDLLImportで出来ますが、構造体そのものを取得するには、何かいい方法がありますか? 以上、宜しくお願いいたします。 |
|
投稿日時: 2005-03-27 22:25
遅くなりましてすみません。
解決できましたか? 私もそんなに詳しいわけでは無く、実際調べてみないとわからないので、具体的に どの関数を使われるのか、教えていただけると何かのお役に立てるかもしれないです。 |
|
投稿日時: 2005-03-28 14:57
レスありがとうございます。
とりあえず、C++でMixerアクセス用DLLを作成し、mixerOpen()→mixerGetControlDetails→mixerSetControlDetails(音量を最大に)→PlaySound→mixerSetControlDetails(音量を最小に)→mixerCloseの順にやれば、何とかできるようになりました。 ここで、PalySoundでは、ファイル名を渡すときに、C#ではunsafeにて、無理やりUnmagedCodeを組み込み、ポインタを渡しています。 ただ、PlaySoundでは*.wavファイルしか再生できず、他のフォーマットのものを再生するには、例えば*.auなど、どうすればよろしいでしょうか? 以上、宜しくお願いいたします。 |
1