概述
利用 Core Audio API 控制系统的音量,类似系统的音量合成器 纯delphi 代码、
代码片段
procedure TForm3.FormCreate(Sender: TObject);
var
deviceEnumerator: IMMDeviceEnumerator;
b: LongBool;
VolumeLevel: Single;
begin
mmo1.Clear;
CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, deviceEnumerator);
deviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, defaultDevice);
defaultDevice.Activate(IID_IAudioEndpointVolume, CLSCTX_ALL, nil, IUnknown(endpointVolume));
if endpointVolume = nil then Exit;
endpointVolume.GetMute(b);
endpointVolume.GetMasterVolumeLevelScalar(VolumeLevel);
trckbr1.Position := Round(100 - 100 * VolumeLevel);
if defaultDevice.Activate(IID_IAudioSessionManager, CLSCTX_ALL, nil, AudioSessionManager )=S_OK then
begin
mmo1.Lines.Add('Activate AudioSessionManager = ok ');
end
else
begin
mmo1.Lines.Add('Activate AudioSessionManager = 出错 ');
Exit;
end;
if defaultDevice.Activate(IID_IAudioSessionManager2, CLSCTX_ALL, nil, AudioSessionManager2 )=S_OK then
begin
mmo1.Lines.Add('Activate IID_IAudioSessionManager2 = ok ');
end
else
begin
mmo1.Lines.Add('Activate IID_IAudioSessionManager2 = 出错 ');
Exit;
end;
if AudioSessionManager2.GetSessionEnumerator(AudioSessionEnumerator)=S_OK then
begin
mmo1.Lines.Add('Activate GetSessionEnumerator = ok ');
end
else
begin
mmo1.Lines.Add('Activate GetSessionEnumerator = 出错 ');
Exit;
end;
end;
最后
以上就是天真哑铃为你收集整理的delphi 利用Core Audio API控制 应用程序 音量的全部内容,希望文章能够帮你解决delphi 利用Core Audio API控制 应用程序 音量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复