Como setar o volume em um TMediaplayer? – Show Delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

Como setar o volume em um TMediaplayer?

 

No uses declare:
MPlayer, MMSystem;

Em versões unicode(Delphi XE2, XE3, XE4, XE5, XE6, XE7, …) declare:
Vcl.MPlayer, Winapi.MMSystem;

Nesta dica é demostrado como saber o volume atual, além de como
poder alterar o volume para determinado valor.

Abaixo segue o exemplo da unit:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
uses 
  Vcl.MPlayer, Winapi.MMSystem; 
const 
  MCI_SETAUDIO = $0873; 
  MCI_DGV_SETAUDIO_VOLUME = $4002; 
  MCI_DGV_SETAUDIO_ITEM = $00800000; 
  MCI_DGV_SETAUDIO_VALUE = $01000000; 
  MCI_DGV_STATUS_VOLUME = $4019; 
type 
  MCI_DGV_SETAUDIO_PARMS = record 
    dwCallback: DWORD; 
    dwItem: DWORD; 
    dwValue: DWORD; 
    dwOver: DWORD; 
    lpstrAlgorithm: PChar; 
    lpstrQuality: PChar; 
  end; 
type 
  MCI_STATUS_PARMS = record 
    dwCallback: DWORD; 
    dwReturn: DWORD; 
    dwItem: DWORD; 
    dwTrack: DWORD; 
  end; 
 
procedure SetMPVolume(MP: TMediaPlayer; Volume: Integer); 
  { Volume: 0 - 1000 } 
var 
  p: MCI_DGV_SETAUDIO_PARMS; 
begin 
  { Volume: 0 - 1000 } 
  p.dwCallback := 0; 
  p.dwItem := MCI_DGV_SETAUDIO_VOLUME; 
  p.dwValue := Volume; 
  p.dwOver := 0; 
  p.lpstrAlgorithm := nil; 
  p.lpstrQuality := nil; 
  mciSendCommand(MP.DeviceID, MCI_SETAUDIO, 
    MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p)); 
end; 
 
function GetMPVolume(MP: TMediaPlayer): Integer; 
var 
  p: MCI_STATUS_PARMS; 
begin 
  p.dwCallback := 0; 
  p.dwItem := MCI_DGV_STATUS_VOLUME; 
  mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@p)); 
  Result := p.dwReturn; 
  { Volume: 0 - 1000 } 
end;

Exemplo de uso:

1
2
3
4
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  SetMPVolume(MediaPlayer1, 500); 
end;
Facebook Comments

Posts Relacionados

  • Administrador
  • 779 views
  • 0 comentários
  • 4 de abril de 2015

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Ir ao topo

© 2016 Infus Soluções em Tecnologia - Todos os Direitos Reservados