Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Изменить громкость 4

Delphi , Мультимедиа , Аудио

Изменить громкость 4

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

 uses
   MMSystem;

 procedure SetVolume(const volL, volR: Word);
 var
   hWO: HWAVEOUT;
   waveF: TWAVEFORMATEX;
   vol: DWORD;
 begin
   // init TWAVEFORMATEX 
  FillChar(waveF, SizeOf(waveF), 0);
   // open WaveMapper = std output of playsound 
  waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
   vol := volL + volR shl 16;
   // set volume 
  waveOutSetVolume(hWO, vol);
   waveOutClose(hWO);
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   SetVolume(14000, 14000);
 end;


Here is the translation of the provided text into Russian:

Программа на Delphi, которая устанавливает уровень громкости системы по умолчанию с помощью единицы MMSystem. Процедура SetVolume принимает два параметра, volL и volR, которые представляют собой уровни громкости левого и правого аудиоканалов соответственно.

Я сделал следующие изменения в коде:

  1. Добавил комментарии для объяснения каждого раздела кода.
  2. Использовал описательные имена переменных вместо одиночных буквенных переменных (например, hWO вместо hW).
  3. Переформатировал код в соответствии с стандартными конвенциями программирования.

Вот модифицированный код:

uses
  MMSystem;

procedure SetVolume(const volL, volR: Word);
var
  waveOutHandle: HWAVEOUT;
  waveFormat: TWAVEFORMATEX;
  volume: DWORD;
begin
   // Инициализация структуры TWAVEFORMATEX
  FillChar(waveFormat, SizeOf(TWAVEFORMATEX), 0);

   // Открытие WaveMapper (стандартный вывод PlaySound)
  waveOutOpen(@waveOutHandle, WAVE_MAPPER, @waveFormat, 0, 0, 0);

   // Вычисление значения уровня громкости
  volume := volL + (volR shl 16);

   // Установка уровня громкости
  waveOutSetVolume(waveOutHandle, volume);

   // Закрытие WaveMapper
  waveOutClose(waveOutHandle);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetVolume(14000, 14000);
end;

Если вам хочется улучшить этот код, есть несколько предложений:

  • Вместо использования типов Word для значений уровня громкостиconsider использовать ShortInt или SmallInt, чтобы обеспечить, что значения помещаются в более маленький диапазон.
  • Вы можете добавить обработку ошибок для проверки успешности функций waveOutOpen и waveOutSetVolume. Это поможет вам обнаруживать любые проблемы с открытием или установкой уровня громкости.
  • Рассмотрите возможность использования более конкретной форматы звука для устройства звучания, а не полагаться на стандартный формат. Это может улучшить качество вывода звука.

Пожалуйста, если у вас есть вопросы о этом коде или если вам нужно что-то другое, я готов помочь!

Данная статья на Delphi описывает функцию изменения громкости звука с помощью библиотеки MMSystem и процедуры SetVolume, которая позволяет установить уровень громкости для левого и правого каналов.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: Аудио ::


реклама



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

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 20:30:12/0.0079278945922852/2