|
|
|
|
|
|
|
|
|
|
|
|
Thomas Stutz
Global Moderator
Hero Member
    
Offline
Beiträge: 1784

|
 |
« Antworten #6 am: 06.03.2002, 16:45:26 » |
|
@Horst:
Das "Microsoft Multimedia Programmierhandbuch" ist ziemlich umfangreich. Was möchtest du denn genau machen/Welche Funktionen interessieren dich ?
Es gibt ein paar Mixer-Funktionen:
mixerOpen mixerGetLineInfo mixerClose mixerGetControlDetails mixerGetDevCaps mixerGetID mixerGetLineControls mixerGetNumDevs mixerMessage mixerSetControlDetails
Und dann diverse gibt's Strukturen, welche man mit Werten füllen muss.
Hab mal ein Beispiel gefunden, welches die Lautstärke des Mikrofons auslist und setzt. Vielleicht gibt's dir einen Anstoss, wie solche Mixer- Funktionen zu verwenden sind.
[font size=2 face="Courier New"][font color="#000000"]procedure TForm1.Button1Click(Sender: TObject); var hMix: HMIXER; mxlc: MIXERLINECONTROLS; mxcd: TMIXERCONTROLDETAILS; vol: TMIXERCONTROLDETAILS_UNSIGNED; mxc: MIXERCONTROL; mxl: TmixerLine; intRet: Integer; begin intRet := mixerOpen(@hMix, 0, 0, 0, 0); if intRet = MMSYSERR_NOERROR then begin mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE; mxl.cbStruct := SizeOf(mxl);
intRet := mixerGetLineInfo(hMix, @mxl, MIXER_GETLINEINFOF_COMPONENTTYPE);
if intRet = MMSYSERR_NOERROR then begin mxlc.cbStruct := SizeOf(mxlc); mxlc.dwLineID := mxl.dwLineID; mxlc.dwControlType := MIXERCONTROL_CONTROLTYPE_VOLUME; mxlc.cControls := 1; mxlc.cbmxctrl := SizeOf(mxc);
mxlc.pamxctrl := @mxc;
intRet := mixerGetLineControls(hMix, @mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE);
if intRet = MMSYSERR_NOERROR then begin label1.Caption := mxlc.pamxctrl.szName; Label2.Caption := IntToStr(mxc.Bounds.dwMinimum) + '-]' + IntToStr(mxc.Bounds.dwMaximum);
mxcd.dwControlID := mxc.dwControlID; mxcd.cbStruct := SizeOf(mxcd); mxcd.cMultipleItems := 0; mxcd.cbDetails := SizeOf(Vol); mxcd.paDetails := @vol; mxcd.cChannels := 1;
vol.dwValue := mxlc.pamxctrl.Bounds.lMinimum;
intRet := mixerSetControlDetails(hMix, @mxcd, MIXER_SETCONTROLDETAILSF_VALUE);
if intRet <> MMSYSERR_NOERROR then label1.Caption := 'SetControlDetails Error'; end else label1.Caption := 'GetLineInfo Error'; end;
intRet := mixerClose(hMix); end; end;
[/font][/font]
|
|
|
|
|
Gespeichert
|
|
|
|
|
|
|
|
|
|
|
|
|
|