DirectSoundの音量調節について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Suikaba
記事: 194
登録日時: 9年前

DirectSoundの音量調節について

#1

投稿記事 by Suikaba » 9年前

どうも。よろしくお願いします。
directsoundで音量調節したいのですが、(ちなみにIDirectSoundBuffer8::SetVolumeでやっています
うまくできません。
コードは次のとおりです

http://ideone.com/ZriyF

DSBufferDescのdwFlagにDSBCAPS_CTRLVOLUMEとしているので、大丈夫かなとおもったのですが
うまく反映されていませんでした。
位置とかも変えて見たのですが、うまくいきませんでした。

よろしければ、ヒントなどでもかまわないので教えていただけると幸いです。

ISLe
記事: 2645
登録日時: 9年前
連絡を取る:

Re: DirectSoundの音量調節について

#2

投稿記事 by ISLe » 9年前

試してみたところ音量調節は機能していました。
ボリューム値が問題のようです。
-5000あたりでかすかに聞こえる程度でしたので-3000とかで試してみてください。

Suikaba
記事: 194
登録日時: 9年前

Re: DirectSoundの音量調節について

#3

投稿記事 by Suikaba » 9年前

>> ISLeさん

本当ですか!?ちょっと確認してみます。

Suikaba
記事: 194
登録日時: 9年前

Re: DirectSoundの音量調節について

#4

投稿記事 by Suikaba » 9年前

試したところ、だめでした。-3000に設定しました。
なんででしょう・・・

ちなみに、環境は
Visual C++ 2008
DirectX9.0c
windows XP
です。

ISLe
記事: 2645
登録日時: 9年前
連絡を取る:

Re: DirectSoundの音量調節について

#5

投稿記事 by ISLe » 9年前

機能していたのはWin7 (x64)とRealtek HD Audioの環境でした。

XPで試してみました。音量変化しませんね。
DirectXランタイムも最新版に更新しているのですが。
サンプルが少ないので仕様なのか不具合なのかも今のところ分からないです。すみません。

プライマリバッファのボリューム設定はできると思う(未確認)のですが、セカンダリバッファで個別にボリューム設定したいのですよね。

ISLe
記事: 2645
登録日時: 9年前
連絡を取る:

Re: DirectSoundの音量調節について

#6

投稿記事 by ISLe » 9年前

調べました。
アプリケーションがアクティブなときじゃないとSetVolumeメソッドが効かないようです。
ウインドウをクリックしたときに処理するようにしたらXPでも機能しました。

WM_ACTIVATE,WM_ACTIVATEAPP,WM_SETFOCUSのメッセージを受け取ったとき即座にボリューム設定するようにしても機能しませんでした。
DirectSound内部のプライマリバッファのリセット処理などで、アプリケーションウインドウがアクティブになるのと若干のタイムラグがあるようです。

Suikaba
記事: 194
登録日時: 9年前

Re: DirectSoundの音量調節について

#7

投稿記事 by Suikaba » 9年前

なるほど・・・そうだったんですか。ありがとうございます。
一応、ISLeさんのおかげでどうにかなりそうですので、解決とさせていただきます。
本当にありがとうございました。

Suikaba
記事: 194
登録日時: 9年前

Re: DirectSoundの音量調節について

#8

投稿記事 by Suikaba » 9年前

解決つけわすれてました。すいません(これで何回目だろう・・・orz

閉鎖

“C言語何でも質問掲示板” へ戻る