• ベストアンサー

VC++で音量の調整、ミュートは。

VC++で簡単なプログラムを考えています。 音量をミュートしたり、解除したり、あるいは、前の音量を覚えていて、音量をゼロにして、また、以前の音量に戻したりするものです。 なので、 音量を設定する。 現在の音量を覚える。 音量をミュートする、解除する などの 対応するコマンドを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • dekopa-
  • ベストアンサー率42% (161/378)
回答No.2

音量調整には複数の手段があります。が、おおざっぱに分けて 1.再生しているファイルだけを音量調整する 2.OS全体のボリュームを調整する MCIを使うと、マスターボリュームを調整したり取得したりできます。

参考URL:
http://hp.vector.co.jp/authors/VA016117/mixer1.html
chachakabu
質問者

お礼

いろいろとありがとうございました。 参考URLの中にサンプルコードがあり、これを使用して、プログラミングをしました。 非常に参考になりました。

その他の回答 (1)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★ヒント ・プロトタイプ宣言は、  MCIERROR mciSendString(   LPCTSTR lpszCommand,   LPTSTR lpszReturnString, UINT cchReturn,   HANDLE hwndCallback ); ・第1引数に次の文字列を与えると出来るようです。  昔ネットで調べた情報ですが、試しましたが上手く音声が消えませんでした。  そこで『mciSendCommand』で同じコマンドがあるかネットなどで検索して下さい。  そのヒントとして第1引数の文字列と動作を紹介します。    (1)『Set CDaudio Audio All on』、『Set CDaudio Audio All off』…左右のスピーカをミュート  (2)『Set CDaudio Audio Left on』、『Set CDaudio Audio Left off』…左側のスピーカ  (3)『Set CDaudio Audio Right on』、『Set CDaudio Audio Right off』…右側のスピーカ    上記の文字列を『lpszCommand』に指定します。  例:mciSendString( TEXT("Set CDaudio Audio All off"), NULL, 0, NULL );  意味:『左右のスピーカをミュート』するらしい。 ・『Wave』なら『WaveOutSetVolume()』API関数で出来るようです。 最後に: ・『mciSendCommand』のプロトタイプ宣言は  MCIERROR mciSendCommand(   MCIDEVICEID IDDevice, // デバイス識別子   UINT uMsg, // コマンドメッセージ   DWORD fdwCommand, // フラグ   DWORD dwParam // パラメータを保持している構造体  ); ・下の『参考URL』にある『076.ボリュームコントロール』の場所も参考にして下さい。  これ以外は『ボリュームコントロール』、『mciSendCommand 音量』キーワードでネットで検索して下さい。 ・以上。参考に!

参考URL:
http://web1.incl.ne.jp/tsukune/paso_ask/mame.html#00076
chachakabu
質問者

お礼

いろいろと詳細ありがとうございました。 参考にさせていただきました。