Контроль звукаDelphi , Мультимедиа , АудиоКонтроль звука
Оформил: DeeCo uses MMSystem; function GetWaveVolume(var LVol: DWORD; var RVol: DWORD): Boolean; var WaveOutCaps: TWAVEOUTCAPS; Volume: DWORD; begin Result := False; if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then begin Result := WaveOutGetVolume(WAVE_MAPPER, @Volume) = MMSYSERR_NOERROR; LVol := LoWord(Volume); RVol := HiWord(Volume); end; end; { The waveOutGetDevCaps function retrieves the capabilities of a given waveform-audio output device. The waveOutGetVolume function retrieves the current volume level of the specified waveform-audio output device. } function SetWaveVolume(const AVolume: DWORD): Boolean; var WaveOutCaps: TWAVEOUTCAPS; begin Result := False; if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then Result := WaveOutSetVolume(WAVE_MAPPER, AVolume) = MMSYSERR_NOERROR; end; { AVolume: The low-order word contains the left-channel volume setting, and the high-order word contains the right-channel setting. A value of 65535 represents full volume, and a value of 0000 is silence. If a device does not support both left and right volume control, the low-order word of dwVolume specifies the volume level, and the high-order word is ignored. } { *** How to Use: ***} // SetWaveVolume: procedure TForm1.Button1Click(Sender: TObject); var LVol: Word; RVol: Word; begin LVol := SpinEdit1.Value; // max. is 65535 RVol := SpinEdit2.Value; // max. is 65535 SetWaveVolume(MakeLong(LVol, RVol)); end; // GetWaveVolume: procedure TForm1.Button2Click(Sender: TObject); var LVol: DWORD; RVol: DWORD; begin if GetWaveVolume(LVol, RVol) then begin SpinEdit1.Value := LVol; SpinEdit2.Value := RVol; end; end; Программа на Delphi, которая управляет уровнем громкости волнового аудиовыходного устройства с помощью библиотеки MMSystem. Программа предоставляет две функции: Функция Функция Программа также включает в себя два процедура: Процедура Процедура Рекомендуется улучшение:
В коде добавлен проверка, чтобы убедиться, что волновое аудиовыходное устройство поддерживает управление громкостью перед попыткой установки или получения уровня громкости. Это предотвращает ошибки, возникающие при использовании не поддерживаемой функциональности. Также worth noting, что константа
Эта константа представляет собой дефолтное волновое аудиовыходное устройство. В статье описывается функциональность контроля звука в приложении Delphi, который позволяет изменять и получать текущие значения громкости левого и правого каналов. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |