Ir ao topo

Tecnobyte

Logomarca da Tecnobyte
Contato por WhatsApp

WhatsApp

(69) 3421-6756

Contato por Telefone

(69) 3421-6756

(69) 3421-6757

Enviar mensagem

Enviar

mensagem

Contato por Facebook

Facebook

Contato por Skype

Skype

Atendimento de segunda a sexta, das 08h00 às 19h00 (horário de Brasília).

Delphi - Multimídia

Como controlar o volume da reprodução de sons wave?

Banner
Inclua na seção uses: mmSystem
Escrevi três funções que acessam a API do Windows para 
controlar o volume de sons wave.

function Wave_SuportaControleVolume: boolean;
var
  Caps: TWaveOutCaps;
begin
  if WaveOutGetDevCaps(WAVE_MAPPER, @Caps,
       SizeOf(Caps)) = MMSYSERR_NOERROR then
    Result := Caps.dwSupport and WAVECAPS_VOLUME <> 0
  else
    Result := false;
end;

type 
  TVolume = record
    Esquerdo: Word;
    Direito: Word;
  end;

function Wave_ObterVolume: TVolume;
begin
  waveOutGetVolume(integer(WAVE_MAPPER), @Result);
end;

procedure Wave_DefinirVolume(Volume: TVolume);
begin
  waveOutSetVolume(integer(WAVE_MAPPER), LongWord(Volume));
end;

A primeira função verifica se o dispositivo Wave instalado 
suporta o controle de volume. O retorno desta função é true 
em caso positivo.

As duas funções seguintes permitem obter e definir o volume,
respectivamente. O tipo TVolume permite controlar os canais
esquerdo e direito individualmente.

Observações

Um bom lembrete! O valor $0000 (zero) indica ausência de som e $FFFF indica o volume máximo.

O conteúdo desta página pode ajudar alguém? Compartilhe!