Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

lpstrElementName:=PChar('');

 end;

 MyError:=mciSendCommand(0, mci_Open, Flags, Longint(@MyOpenParms));

 if MyError = 0 then FDeviceID:=MyOpenParms.wDeviceID;

end;

procedure TForm1.RecordMedia;

var

 MyRecordParms: TMCI_Record_Parms;

 TextLen: Longint;

begin

 Flags:=mci_Notify;

 with MyRecordParms do begin

dwCallback:=Handle; // TForm1.Handle

dwFrom:=0;

dwTo:=10000;

 end;

 MyError:=mciSendCommand(FDeviceID, mci_Record, Flags,Longint(@MyRecordParms));

end;

procedure TForm1.StopMedia;

var MyGenParms: TMCI_Generic_Parms;

begin

 if FDeviceID <> 0 then begin

Flags:=mci_Wait;

MyGenParms.dwCallback:=Handle; // TForm1.Handle

MyError:=mciSendCommand(FDeviceID, mci_Stop, Flags,Longint(@MyGenParms));

 end;

end;

procedure TForm1.SaveMedia;

type //
не реализовано в Delphi

 PMCI_Save_Parms = ^TMCI_Save_Parms;

 TMCI_Save_Parms = record

dwCallback: DWord;

lpstrFileName: PAnsiChar; // имя файла, который нужно сохранить

 end;

var MySaveParms: TMCI_Save_Parms;

begin

 if FDeviceID <> 0 then begin

// сохраняем файл...

Flags:=mci_Save_File or mci_Wait;

with MySaveParms do begin

dwCallback:=Handle;

lpstrFileName:=PChar('c:\message.wav');

end;

MyError:=mciSendCommand(FDeviceID, mci_Save, Flags,Longint(@MySaveParms));

 end;

end;

procedure TForm1.CloseMedia;

var MyGenParms: TMCI_Generic_Parms;

begin

 if FDeviceID <> 0 then begin

Flags:=0;

MyGenParms.dwCallback:=Handle; // TForm1.Handle

MyError:=mciSendCommand(FDeviceID, mci_Close, Flags,Longint(@MyGenParms));

if MyError = 0 then FDeviceID:=0;

 end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 OpenMedia;

 RecordMedia;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

 StopMedia;

 SaveMedia;

 CloseMedia;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 Application.OnException := AppException;

end;

procedure TForm1.AppException(Sender: TObject; E: Exception);

begin

 CloseMedia;

end;

end.
 

Как

реализовать регулятор громкости?

Nomadic советует:

Да всё пpосто. Даже, я бы сказал, тyпо. :-)

INT GetMasterVolumeControlID {

 // get dwLineID

 MIXERLINE mxl;

 mxl.cbStruct = sizeof(MIXERLINE);

 mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;

 if (::mixerGetLineInfo((HMIXEROBJ)ghmx, &mxl, MIXER_OBJECTF_HMIXER | MIXER_GETLINEINFOF_COMPONENTTYPE) != MMSYSERR_NOERROR) return 34;

 // get dwControlID

 MIXERCONTROL mxc;

 MIXERLINECONTROLS mxlc;

 mxlc.cbStruct = sizeof(MIXERLINECONTROLS);

 mxlc.dwLineID = mxl.dwLineID;

 mxlc.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;

 mxlc.cControls = 1;

 mxlc.cbmxctrl = sizeof(MIXERCONTROL);

 mxlc.pamxctrl = &mxc;

 if (::mixerGetLineControls((HMIXEROBJ)ghmx, &mxlc, MIXER_OBJECTF_HMIXER | MIXER_GETLINECONTROLSF_ONEBYTYPE) != MMSYSERR_NOERROR) return 34;

 return mxc.dwControlID;

}

BOOL SetMasterVolume(DWORD dwVolume) {

 MIXERCONTROLDETAILS mxcd;

 MIXERCONTROLDETAILS_UNSIGNED mxcd_u;

Поделиться с друзьями: