Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
Speaker [7]
Аудио [51]
Видео [11]
Джойстик [2]
Запись звука [5]
Микрофон [3]

Наш опрос
Оцените мой сайт
Всего ответов: 30

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Мультимедиа » Аудио

Контроль звука
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;
Категория: Аудио | Добавил: Skinner (07.07.2008)
Просмотров: 437 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz