Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Управление громкостью звука в Windows Vista и XP с помощью библиотеки mmsystem

Delphi , ОС и Железо , Windows

В статье мы рассмотрим, как программно управлять громкостью звука в операционных системах 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




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 11:14:11/0.0059609413146973/0