PDA

Ver la Versión Completa : Como cambiar volumen de la tarjeta de sonido


kalisto
03-08-2004, 20:32:17
Quisiera saber como se puede cambiar el volumen general de la tarjeta de sonido.
he probado con lo siguiente pero el volumen sigue siendo el mismo.

Type
TVolume = packed record
Left : Word;
Right : Word;
End;
const
DeviceIndex=5;

var
Vol: TVolume;

begin
Vol.Left := strtoint(edit1.text) shl 8;
Vol.Right:= Vol.Left;
auxSetVolume(UINT(DeviceIndex), Vol.Right) ;
end;


Agradeceria ayuda, mi version de delphi es la 7.

Neftali [Germán.Estévez]
04-08-2004, 13:32:52
Prueba con éste codigo (no lo he probado).


var
waveCaps: TWaveOutCaps;
Volume: DWORD;
begin
{Get Device Caps}
waveOutGetDevCaps(0, @waveCaps, SizeOf(waveCaps));
{ If Volume Control Supported }
if (waveCaps.dwSupport and WAVECAPS_VOLUME <> 0) then begin
waveOutGetVolume(0, @Volume);
// Asignar volumen
waveOutSetVolume(0, $F000F000);
// $F000F000 => Máximo
// $00000000 => Mínimo
// 4 números para cada canal (izq. y der.).
end;

kalisto
04-08-2004, 18:55:47
Funciona pero solo cambia el volumen de los dispositivos de onda (archivos wav, mp3 etc), pero no cambia el volumen general, por ejemplo si estamos escuchando un cd audio no podremos variar el volumen.
Gracias de todas formas.


Prueba con éste codigo (no lo he probado).


var
waveCaps: TWaveOutCaps;
Volume: DWORD;
begin
{Get Device Caps}
waveOutGetDevCaps(0, @waveCaps, SizeOf(waveCaps));
{ If Volume Control Supported }
if (waveCaps.dwSupport and WAVECAPS_VOLUME <> 0) then begin
waveOutGetVolume(0, @Volume);
// Asignar volumen
waveOutSetVolume(0, $F000F000);
// $F000F000 => Máximo
// $00000000 => Mínimo
// 4 números para cada canal (izq. y der.).
end;