Тема: Звук
Показать сообщение отдельно
  #6  
Старый 19.10.2011, 23:38
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Вот доработанный напильником код:
Код:
procedure SetVolume(X : Word);
type
  TVolumeType = record
    case Integer of
      0: (LongVolume: Longint);
      1: (LeftVolume, RightVolume : Word);
    end;
var
  iErr          : Integer;
  I, J          : Integer;
  WaveOutCaps	: TWaveOutCaps;
  Vol	        : TVolumeType;
begin
  J := 0;
  for I := 0 to waveOutGetNumDevs - 1 do
  begin
    waveOutGetDevCaps(I, @WaveOutCaps, SizeOf(WaveOutCaps));
    if (WaveOutCaps.dwSupport and WAVECAPS_VOLUME) <> 0 then
    begin
      Vol.LeftVolume := X shl 8;
      Vol.RightVolume := Vol.LeftVolume;
      J := I;
      Break;
    end;
  end;

  iErr := waveOutSetVolume(J, Vol.LongVolume);
  if (iErr <> 0) then
    ShowMessage('No audio devices are available!');
end;
диапазон громкости от 0 до 255. Изменяет громкомть Wave канала. Предыдущий код был рассчитан на CDaudio.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием