Delphius, mi idea no es ofender ha nadien. quisas me exprese mal. pero la idea es que yo estoy probando varias formas de hacer lo mismo con el tema del volumen. quisas para mi esa un poco complicado de entender ya que soy novato en delphi.
mira uso el siguiente codigo como bajar el volumen del TMediaPlayer, pero si veo el control de win no baja el volumen me refiero a lo grafico que no lo baja pero si a lo sonoro.
Código:
uses MMSystem;
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;
var
Form1: TForm1;
const
MCI_SETAUDIO = $0873;
MCI_DGV_SETAUDIO_VOLUME = $4002;
MCI_DGV_SETAUDIO_ITEM = $00800000;
MCI_DGV_SETAUDIO_VALUE = $01000000;
MCI_DGV_STATUS_VOLUME = $4019;
//***** rutina de sonido
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;
end;
procedure SetMPVolume(MP : TMediaPlayer; Volume : Integer);
var p: MCI_DGV_SETAUDIO_PARMS;
begin
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;
//bajar el sonido
procedure TForm1.Timer1Timer(Sender: TObject);
begin
SetMPVolume(MediaPlayer1,TrackBar1.Position)
end;
en cambio la que me dice cHackAll baja el master del volumen y tanto el sonoro como del control de win.
tu libreria todavia no la pruebo pero me gustaria saber si la haz probado en delphi superior a 7 , no se como 2007.
saludos