В статье мы рассмотрим, как программно управлять громкостью звука в операционных системах Windows Vista и XP с использованием библиотеки mmsystem. Этот процесс может быть полезен для разработчиков, создающих приложения, которые требуют автоматической настройки звука.
Управление громкостью звука в Windows Vista и XP
Для управления громкостью звука в Windows Vista и XP можно использовать функции GetMasterVolume и SetMasterVolume, доступные через библиотеку mmsystem. Ниже приведен пример кода, который демонстрирует, как это можно реализовать.
Пример кода для Windows Vista:
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
public
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.
Пример кода для Windows XP:
function SetMasterVolume(VolToSet: word; out VolSet: word): MMResult;
var
MixerHandle: HMixer;
Volume: TMixerControlDetails_Unsigned;
MixerLine: TMixerLine;
MixerLineControls: TMixerLineControls;
VolumeCtrl: TMixerControl;
MixerControlDetails: TMixerControlDetails;
begin
// Код для настройки громкости в Windows XP ...
end;
Важные замечания:
В примере для Vista используется интерфейс IAudioEndpointVolume, доступный через MMDevApi. Этот интерфейс позволяет управлять громкостью через различные функции, такие как установка и получение уровней громкости, а также мут (отключение звука).
В примере для XP используется функция SetMasterVolume, которая работает с микшером Windows для изменения громкости.
При использовании MMDevApi важно правильно скорректировать типы параметров, например, заменить двойные параметры на одинарные, логические параметры на целочисленные, а параметры TGUID на PGUID.
Используя предоставленные примеры, разработчики могут интегрировать функционал управления громкостью в свои приложения, что позволит пользователям легко настраивать уровень звука без необходимости переключения в системные настройки.
Статья посвящена программному управлению громкостью звука в операционных системах Windows Vista и XP с использованием библиотеки mmsystem, что полезно для разработчиков, создающих приложения с автоматической настройкой звука.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.