Карта сайтаСсылкиКонтакты

Раздельное изменение громкости Левого и Правого каналов

PDF Печать
Статьи

Две процедуры, которые иллюстрируют раздельное изменение громкости Левого и Правого каналов.

При использовании WaveOutSetVolume из MMSYSTEM, Вы можете изменять громкость звука. Чтобы это использовать, нужно установить значение в DWord переменной:

  • 2 младших байта (от 0 до 65535) - громкость левого канала
  • 2 старших байта (от 0 до 65535) - громкость правого канала

При использовании этих процедур, Вы можете устанавливать громкость отдельно для каждого канала:


uses MMsystem

Procedure Left_volume (value : Dword);
var
   Rvol, temp : Dword;
begin
   // Получаем текущую громкость
   WaveOutGetVolume(WAVE_MAPPER, @temp);
   Rvol := HiWord (temp);
   asm
     shl Rvol, 16
     end;
   Rvol := Rvol and $ffff0000;
   WaveOutSetVolume(WAVE_MAPPER, value or Rvol);
end;


Procedure Right_volume (value : Dword);
var
   Lvol, temp : Dword;
begin
   WaveOutGetVolume(WAVE_MAPPER, @temp);
   Lvol := LoWord (temp);
   asm
     shl value, 16
     end;
   value := value and $ffff0000;
   WaveOutSetVolume(WAVE_MAPPER, value or Lvol);
end;

Автор: Pooia Lalbakhsh


 

Добавить комментарий


Защитный код
Обновить