gpt4 book ai didi

delphi - vista/xp中如何调节主音量

转载 作者:行者123 更新时间:2023-12-03 15:10:50 25 4
gpt4 key购买 nike

我想以编程方式调整音量,例如 Vista 和 XP 中的 Get/SetMasterVolume?使用mmsystem单位?

最佳答案

这是音频通用 API 的实现:MMDevApi

http://social.msdn.microsoft.com/Forums/en/windowspro-audiodevelopment/thread/5ce74d5d-2b1e-4ca9-a8c9-2e27eb9ec058

以及一个带有按钮的示例

unit Unit33;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MMDevApi, ActiveX, StdCtrls;

type
TForm33 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form33: TForm33;
endpointVolume: IAudioEndpointVolume = nil;

implementation

{$R *.dfm}


procedure TForm33.Button1Click(Sender: TObject);
var
VolumeLevel: Single;
begin
if endpointVolume = nil then Exit;
VolumeLevel := 0.50;
endpointVolume.SetMasterVolumeLevelScalar(VolumeLevel, nil);
Caption := Format('%1.8f', [VolumeLevel])
end;

procedure TForm33.FormCreate(Sender: TObject);
var
deviceEnumerator: IMMDeviceEnumerator;
defaultDevice: IMMDevice;
begin
CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, deviceEnumerator);
deviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, defaultDevice);
defaultDevice.Activate(IID_IAudioEndpointVolume, CLSCTX_INPROC_SERVER, nil, endpointVolume);
end;

end.

关于delphi - vista/xp中如何调节主音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3437050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com