我甚至不确定这是否适合一个问题,但这只是一个问题.我有一个用Delphi XE编写的互联网广播播放器,使用
BASS库进行音频流和播放.该应用程序需要在Windows XP,Vista和7下运行.
Bass可以很容易地控制全局音量,但是没有设置静音功能,一般来说,根据每个应用程序控制音量更好.
Bass还可以轻松控制“通道”(流)的音量,但同样没有静音,这也不是适合每个应用程序的控制. (Windows混音器中的应用程序音量控制不受影响.)
据我所知,对于Vista及以上版本,我需要ISimpleAudioVolume和/或IAudioEndpointVolume,但是找不到这些的Delphi实现.所以问题的一部分是,它作为第三方库存在吗?
第二部分是什么是在XP上控制音量和切换静音(系统范围或每个应用程序)的正确方法,这些接口不可用?
解决方法
使用此简单代码将其在我的机器上运行的主卷静音:
procedure TForm1.Button1Click(Sender: TObject); var i:Integer; begin for i:=0 to 100 do begin keybd_event($AE,MapVirtualKey($AE,0),0); keybd_event($AE,KEYEVENTF_KEYUP,0); end; end;