Ver Mensaje Individual
  #6  
Antiguo 28-01-2004
CHiCoLiTa CHiCoLiTa is offline
Miembro
 
Registrado: may 2003
Posts: 102
Reputación: 21
CHiCoLiTa Va por buen camino
Yo uso esto para modificar el sonido, la idea es parecida a la respuesta anterior, pero mediante otro metodo

Por cierto, si quieres menos complicacion a la hora de usar estas funciones, sobre todo para las modificaciones, por si usas un TrackBar con esta llamada te evitas todo el rollo.

Es simplemente llamar a control de volumen de windows

WinExec('SNDVOL32.EXE',SW_SHOWNORMAL);

Código:
uses MMSystem;

type
   TVolumeRec = record
     case Integer of
       0: (LongVolume: Longint) ;
       1: (LeftVolume, RightVolume : Word) ;
     end;

{ Funcion para modificar el sonido }
function SetWaveVolume(const AVolume: DWORD): Boolean;
var
  WaveOutCaps: TWAVEOUTCAPS;
begin
  Result := False;
  if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then
    if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
      Result := WaveOutSetVolume(-1, AVolume) = MMSYSERR_NOERROR;
end;

{ Funcion para ver que sonido tiene puesto }
function GetWaveVolume(var LVol: DWORD; var RVol: DWORD): Boolean;
var
  WaveOutCaps: TWAVEOUTCAPS;
  Volume: DWORD;
begin
  Result := False;
  if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf
    if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
    begin
      Result := WaveOutGetVolume(-1, @Volume) = MMSYSERR_NOERROR;
      //Result := WaveOutGetVolume(WAVE_MAPPER, @Volume) = MMSYSERR_NOERROR;
      LVol   := LoWord(Volume);
      RVol   := HiWord(Volume);
    end;
end;
Responder Con Cita