Controlar volumen altavoces
Publicado por Fran García (36 intervenciones) el 04/11/2004 14:16:38
Necesito poder controlar mediante un trackbar el sonido que viene de la tarjeta de sonido. De momento lo tengo hecho con las siguientes funciones:
(*Procedimiento que modifica el volumen del altavoz irquierdo*)
Procedure TAutoCorrecion.Left_volume (value : Dword);
var Rvol, temp : Dword;
begin
waveoutgetvolume(0, @temp);//returns the current volume
ShowMessage('Left = '+inttostr(temp));
Rvol := hiword (temp);
asm
shl Rvol, 16
end;
Rvol := Rvol and $ffff0000;
waveoutsetvolume(0, value or Rvol);
end;
(*Procedimiento que modifica el volumen del altavoz derecho*)
Procedure TAutoCorrecion.Right_volume (value : Dword);
var Lvol, temp : Dword;
begin
waveoutgetvolume(0, @temp);
ShowMessage('Right = '+inttostr(temp));
Lvol := Loword (temp);
asm
shl value, 16
end;
value := value and $ffff0000;
waveoutsetvolume(0, value or Lvol);
end;
Sin embargo el efecto que se produce, es algo extraño ya que se modifica el volumen del sonido, pero no se modifica los valores de los controles de sonido de windows. ¿Hay otra forma de hacerlo para conseguir lo que yo quiero? Espero que me haya explicado con claridad.
Saludos
Fran García
(*Procedimiento que modifica el volumen del altavoz irquierdo*)
Procedure TAutoCorrecion.Left_volume (value : Dword);
var Rvol, temp : Dword;
begin
waveoutgetvolume(0, @temp);//returns the current volume
ShowMessage('Left = '+inttostr(temp));
Rvol := hiword (temp);
asm
shl Rvol, 16
end;
Rvol := Rvol and $ffff0000;
waveoutsetvolume(0, value or Rvol);
end;
(*Procedimiento que modifica el volumen del altavoz derecho*)
Procedure TAutoCorrecion.Right_volume (value : Dword);
var Lvol, temp : Dword;
begin
waveoutgetvolume(0, @temp);
ShowMessage('Right = '+inttostr(temp));
Lvol := Loword (temp);
asm
shl value, 16
end;
value := value and $ffff0000;
waveoutsetvolume(0, value or Lvol);
end;
Sin embargo el efecto que se produce, es algo extraño ya que se modifica el volumen del sonido, pero no se modifica los valores de los controles de sonido de windows. ¿Hay otra forma de hacerlo para conseguir lo que yo quiero? Espero que me haya explicado con claridad.
Saludos
Fran García
Valora esta pregunta


0