Mar*_*ski 8 delphi audio volume windows-vista
我甚至不确定这是否适合一个问题,但这只是一个问题.我有一个用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, 0);
keybd_event($AE, MapVirtualKey($AE,0), KEYEVENTF_KEYUP, 0);
end;
end;
Run Code Online (Sandbox Code Playgroud)