PDA

Ver la Versión Completa : Como controlo el volumen del MediaPlayer??


GabiMel
29-04-2004, 05:59:07
Hola a todos; les comento mi problema:

necesito reproducir 2 videos a la vez, es decir, uso 2 MediaPlayer y uso como display 2 Panel; pero solo quiero que se escuche el audio de uno de ellos.... puedo controlar el volumen de el MediaPlayer??? como dejo sin sonido a uno de los dos MediaPlayer?? que me sugieren??

muchas gracias

Gabi.

NPIdea
12-02-2007, 12:40:43
Como me he encontrado el mismo problema, pues doy la solución que me ha fucnionado, tal como lo he encontrado en una página.


uses
MPlayer, 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;

// Example, Beispiel:

procedure TForm1.Button1Click(Sender: TObject);
begin

Mediaplayer.Filename:='Loquesea.avi';
Mediaplayer.Open;
SetMPVolume(MediaPlayer1, 500); // de 0 a 1000
MediaPlayer.Play;
end;