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

Установить звук для TMediaPlayer

Delphi , Компоненты и Классы , TMediaPlayer

Установить звук для TMediaPlayer

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

uses
   MPlayer, MMSystem;

 const
   MCI_SETAUDIO = $0873;
   MCI_DGV_SETAUDIO_VOLUME = $4002;
   MCI_DGV_SETAUDIO_ITEM = $00800000;
   MCI_DGV_SETAUDIO_VALUE = $01000000;
   MCI_DGV_STATUS_VOLUME = $4019;

 type
   MCI_DGV_SETAUDIO_PARMS = record
     dwCallback: DWORD;
     dwItem: DWORD;
     dwValue: DWORD;
     dwOver: DWORD;
     lpstrAlgorithm: PChar;
     lpstrQuality: PChar;
   end;

 type
   MCI_STATUS_PARMS = record
     dwCallback: DWORD;
     dwReturn: DWORD;
     dwItem: DWORD;
     dwTrack: DWORD;
   end;

 procedure SetMPVolume(MP: TMediaPlayer; Volume: Integer);
   { Volume: 0 - 1000 }
 var
   p: MCI_DGV_SETAUDIO_PARMS;
 begin
   { Volume: 0 - 1000 }
   p.dwCallback := 0;
   p.dwItem := MCI_DGV_SETAUDIO_VOLUME;
   p.dwValue := Volume;
   p.dwOver := 0;
   p.lpstrAlgorithm := nil;
   p.lpstrQuality := nil;
   mciSendCommand(MP.DeviceID, MCI_SETAUDIO,
     MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p));
 end;

 function GetMPVolume(MP: TMediaPlayer): Integer;
 var
    p: MCI_STATUS_PARMS;
 begin
   p.dwCallback := 0;
   p.dwItem := MCI_DGV_STATUS_VOLUME;
   mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@p));
   Result := p.dwReturn;
   { Volume: 0 - 1000 }
 end;

 // Example, Beispiel: 

procedure TForm1.Button1Click(Sender: TObject);
 begin
   SetMPVolume(MediaPlayer1, 500);
 end;

Программный код на Delphi для управления громкостью компонента TMediaPlayer с помощью библиотеки Media Control Interface (MCI).

Константы: В этом разделе определены константы, которые используются в коде. Они представляют собой различные команды и флаги MCI.

Типы: Определены два рекорда типа MCI_DGV_SETAUDIO_PARM и MCI_STATUS_PARM, чтобы хранить параметры для функций MCI. Эти записи содержат поля для callback, item, value, over, algorithm и quality.

Процедура SetMPVolume: Эта процедура устанавливает громкость компонента TMediaPlayer. Она принимает два параметра: MP (компонент TMediaPlayer) и Volume (целое число, представляющее уровень громкости). Процедура создает экземпляр записи MCI_DGV_SETAUDIO_PARM, заполняет его необходимыми значениями и затем вызывает функцию mciSendCommand для установки громкости.

Функция GetMPVolume: Эта функция получает текущую громкость компонента TMediaPlayer. Она принимает один параметр: MP (компонент TMediaPlayer). Функция создает экземпляр записи MCI_STATUS_PARM, заполняет его необходимыми значениями и затем вызывает функцию mciSendCommand для получения текущей громкости.

Пример: В этом примере определена обработчик события клика кнопки. Когда кнопка кликается, она устанавливает громкость компонента MediaPlayer1 в 500 используя процедуру SetMPVolume.

Вот некоторые предложения по улучшению кода:

  • Обработка ошибок: Код не проверяет, успешны ли команды MCI. Рекомендуется проверять возвращаемое значение функции mciSendCommand и обрабатывать любые ошибки, которые могут возникнуть.
  • Организация кода: Код слишком плотный, что делает его трудным для чтения. Следует разбить его на более маленькие процедуры или функции с ясными именами.
  • Комментарии: Хотя в коде есть некоторые комментарии, они могли бы быть более подробными и информативными. Например, краткое описание того, что делает каждая процедура или функция, было бы полезно.

В целом, это хороший старт для управления громкостью компонента TMediaPlayer с помощью библиотеки MCI. С некоторым рефакторингом и улучшением код может стать более robust и maintainable.

Установка звука для TMediaPlayer в Delphi с помощью функций mciSendCommand и процедуры SetMPVolume.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: TMediaPlayer ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-10-12 15:11:47/0.0037360191345215/0