在Delphi中控制应用程序音量

时间:2011-01-06 14:44:30

标签: delphi windows-vista audio volume

我甚至不确定这是否适合一个问题,但 是一个问题。我有一个用Delphi XE编写的互联网广播播放器,使用BASS库进行音频流和播放。该应用程序需要在Windows XP,Vista和7下运行。

Bass可以轻松控制全局音量,但无法使声音静音,一般来说,根据每个应用程序控制音量更好。

Bass还可以轻松控制“频道”(流)的音量,但同样没有静音,这也不是正确的每个应用程序控件。 (Windows混音器中的应用程序音量控制不受影响。)

据我所知,对于Vista及以上版本,我需要ISimpleAudioVolume和/或IAudioEndpointVolume,但找不到这些的Delphi实现。所以问题的一部分是,它作为第三方库存在吗?

第二部分是,什么是在XP上控制音量和切换静音(系统范围或每个应用程序)的正确方法,这些接口不可用?

1 个答案:

答案 0 :(得分: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;
相关问题