![]() |
![]() ![]() ![]() ![]() |
|
Контроль звука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 прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||