利用 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 ');