我是靠谱客的博主 天真哑铃,最近开发中收集的这篇文章主要介绍delphi 利用Core Audio API控制 应用程序 音量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

利用 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控制 应用程序 音量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(88)

评论列表共有 0 条评论

立即
投稿
返回
顶部