2011-01-06 52 views
7

これは1つの質問に適合するかどうかはわかりませんが、という問題が1つあります。私は、オーディオのストリーミングと再生のためにBASSライブラリを使用して、Delphi XEで書かれたインターネットラジオプレーヤーを持っています。アプリケーションはWindows XP、Vista、および7で動作する必要があります。Delphiのアプリケーション音量を制御する

低音は音量を調整するのが簡単ですが、音を消す機能はありません。一般に、アプリケーションごとに音量を制御することをお勧めします。

低音も「チャンネル」(ストリーム)の音量をコントロールするのが簡単ですが、ミュートもなく、アプリケーションごとの適切なコントロールでもありません。 (Windowsミキサーのアプリケーションボリュームコントロールは影響を受けません)

私はVista以上ではISimpleAudioVolumeおよび/またはIAudioEndpointVolumeが必要ですが、これらのDelphi実装は見つかりません。だから問題の1つは、それが第三者図書館として存在するかどうかです。

パート2は、これらのインターフェイスが利用できないXPで音量を制御し、ミュート(システム全体またはアプリケーションごと)を切り替える適切な方法は何ですか?

+0

あなたは「Delphiの実装」を必要としません。 MSDNの公式ドキュメントに従ってください。 –

+0

これらのインターフェイスは、Delphi Xeでは宣言されていないようです。 XPについてはどうですか? –

+1

1)自分で宣言できます。 2)それは問題かもしれません。 –

答えて

2

は、それは私のマシン上で動作メインボリュームをミュートするために、この単純なコードを使用します。

procedure TForm1.Button1Click(Sender: TObject); 
var 
i:Integer; 
begin 
for i:=0 to 100 do 
begin 
    keybd_event($AE, MapVirtualKey($AE,0), 0, 0); 
    keybd_event($AE, MapVirtualKey($AE,0), KEYEVENTF_KEYUP, 0); 
end; 
end; 
+1

音量を下げる代わりに、本当にミュートしないのはなぜですか? [仮想キーコード](http://msdn.microsoft.com/en-us/library/dd375731%28v=vs.85%29.aspx) - > 'VK_VOLUME_MUTE' = 0xAD –

+0

は私のプラットフォーム? – opc0de

関連する問題