| 
 
 
{*********************************************************************
 Thomas Stutz in
 http://www.swissdelphicenter.ch/torry/showcode.php?id=1204
 showed some useful peace of code how to take control of mixer lines.
 
 I would like to add some more information about taking control of the
 !!! PLAYBACK or RECORD line !!!!
 
 *********************************************************************}
 
 // see the {*} marked lines in the SetMicrophoneVolume function
 
 function SetMicrophoneVolume(bValue: Word): Boolean;
 var                          {0..65535}
 hMix: HMIXER;
 mxlc: MIXERLINECONTROLS;
 mxcd: TMIXERCONTROLDETAILS;
 vol: TMIXERCONTROLDETAILS_UNSIGNED;
 mxc: MIXERCONTROL;
 mxl: TMixerLine;
 intRet: Integer;
 nMixerDevs: Integer;
 begin
 // Check if Mixer is available
 // Überprüfen, ob ein Mixer vorhanden
 nMixerDevs := mixerGetNumDevs();
 if (nMixerDevs < 1) then
 begin
 Exit;
 end;
 
 // open the mixer
 intRet := mixerOpen(@hMix, 0, 0, 0, 0);
 if intRet = MMSYSERR_NOERROR then
 begin
 mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE;
 mxl.cbStruct        := SizeOf(mxl);
 
 {*}    // this option will tell the compiler which line destination to take:
 {*}    // 0 - PLAYBACK destination
 {*}    // 1 - RECORD destination
 {*}    // this time the compiler will take control of recording microphone line
 {*}    mxl.dwDestination := 1;
 
 
 // get line info
 intRet := mixerGetLineInfo(hMix, @mxl, MIXER_GETLINEINFOF_COMPONENTTYPE);
 
 //...
 end;
 end;
 
 //...
 
 
 
   
   
    | 
         
          | Bewerten Sie diesen Tipp: |  |  |