![]() |
Laustärke Visual equalizer
Hey @ all
ich weiß net wie oft das schon gefragt wurde! also ich habe einen Media player gebaut. nun möchte ich die Wave und Lautstärkereglung mit einer Trackbar steuern ich bekomme es bloß nicht hin auserdem möchte ich einen equalizer un ein visualeffekt einfügen. kann mir jemand helfen? MFG MasterTobi |
Re: Laustärke Visual equalizer
Moin!
Zitat:
Die ![]() PS: Herzlich Willkommen in der DP :dp: |
Re: Laustärke Visual equalizer
Zitat:
|
Re: Laustärke Visual equalizer
Hey
ich hab nun was gefunden um die laütstarke zu regeln. Allerdings mit 10 TButtons von 100%-10% und eine checkbox für mute. Funktioniert sehr gut. nun bin ich noch an der suche für einen equalizer und eine Visualisierung wie bei Windows Media Player(Streifen und Wellen/streifen). kann mir jemand helfen? der Code für Die lautstärke mit 10TButtons
Delphi-Quellcode:
const MCI_SETAUDIO = $0873; MCI_DGV_SETAUDIO_VOLUME = $4002; MCI_DGV_SETAUDIO_ITEM = $00800000; MCI_DGV_SETAUDIO_VALUE = $01000000; MCI_DGV_STATUS_VOLUME = $4019; type MCI_DGV_SETAUDIO_PARMS = record dwCallback: DWORD; dwItem: DWORD; dwValue: DWORD; dwOver: DWORD; lpstrAlgorithm: PChar; lpstrQuality: PChar; end; type MCI_STATUS_PARMS = record dwCallback: DWORD; dwReturn: DWORD; dwItem: DWORD; dwTrack: DWORD; end; procedure SetMPVolume(MP: TMediaPlayer; Volume: Integer); { Volume: 0 - 1000 } var p: MCI_DGV_SETAUDIO_PARMS; begin { Volume: 0 - 1000 } p.dwCallback := 0; p.dwItem := MCI_DGV_SETAUDIO_VOLUME; p.dwValue := Volume; p.dwOver := 0; p.lpstrAlgorithm := nil; p.lpstrQuality := nil; mciSendCommand(MP.DeviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p)); end; function GetMPVolume(MP: TMediaPlayer): Integer; var p: MCI_STATUS_PARMS; begin p.dwCallback := 0; p.dwItem := MCI_DGV_STATUS_VOLUME; mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@p)); Result := p.dwReturn; { Volume: 0 - 1000 } end; procedure TMPForm.Button1Click(Sender: TObject); begin SetMPVolume(MediaPlayer1, 1000); end; procedure TMPForm.Button2Click(Sender: TObject); begin SetMPVolume(MediaPlayer1, 900); end; procedure TMPForm.Button3Click(Sender: TObject); begin SetMPVolume(MediaPlayer1, 800); end; procedure TMPForm.Button4Click(Sender: TObject); begin SetMPVolume(MediaPlayer1, 700); end; procedure TMPForm.Button5Click(Sender: TObject); begin SetMPVolume(MediaPlayer1, 600); end; procedure TMPForm.Button6Click(Sender: TObject); begin SetMPVolume(MediaPlayer1, 500); end; procedure TMPForm.Button7Click(Sender: TObject); begin SetMPVolume(MediaPlayer1, 400); end; procedure TMPForm.Button8Click(Sender: TObject); begin SetMPVolume(MediaPlayer1, 300); end; procedure TMPForm.Button9Click(Sender: TObject); begin SetMPVolume(MediaPlayer1, 200); end; procedure TMPForm.Button10Click(Sender: TObject); begin SetMPVolume(MediaPlayer1, 100); end; und hier der Code für Mute(Stumm) [code=delphi] function GetMasterMute( Mixer: hMixerObj; var Control: TMixerControl): MMResult; // Returns True on success var Line: TMixerLine; Controls: TMixerLineControls; begin ZeroMemory(@Line, SizeOf(Line)); Line.cbStruct := SizeOf(Line); Line.dwComponentType := MIXERLINE_COMPONENTTYPE_DST_SPEAKERS; Result := mixerGetLineInfo(Mixer, @Line, MIXER_GETLINEINFOF_COMPONENTTYPE); if Result = MMSYSERR_NOERROR then begin ZeroMemory(@Controls, SizeOf(Controls)); Controls.cbStruct := SizeOf(Controls); Controls.dwLineID := Line.dwLineID; Controls.cControls := 1; Controls.dwControlType := MIXERCONTROL_CONTROLTYPE_MUTE; Controls.cbmxctrl := SizeOf(Control); Controls.pamxctrl := @Control; Result := mixerGetLineControls(Mixer, @Controls, MIXER_GETLINECONTROLSF_ONEBYTYPE); end; end; procedure SetMasterMuteValue( Mixer: hMixerObj; Value: Boolean); var MasterMute: TMixerControl; Details: TMixerControlDetails; BoolDetails: TMixerControlDetailsBoolean; Code: MMResult; begin Code := GetMasterMute(0, MasterMute); if Code = MMSYSERR_NOERROR then begin with Details do begin cbStruct := SizeOf(Details); dwControlID := MasterMute.dwControlID; cChannels := 1; cMultipleItems := 0; cbDetails := SizeOf(BoolDetails); paDetails := @BoolDetails; end; LongBool(BoolDetails.fValue) := Value; Code := mixerSetControlDetails(0, @Details, MIXER_SETCONTROLDETAILSF_VALUE); end; if Code <> MMSYSERR_NOERROR then raise Exception.CreateFmt('SetMasterMuteValue failure, '+ 'multimedia system error #%d',
Code:
);
end; procedure TMPForm.CheckBox1Click(Sender: TObject); begin SetMasterMuteValue(0, CheckBox1.Checked); end; MFG MasterTobi |
Re: Laustärke Visual equalizer
Zitat:
|
Re: Laustärke Visual equalizer
ja wollt ich ja hab es bloß nicht hinbekommen
|
Re: Laustärke Visual equalizer
Hast du es jetzt mit einer Trackbar ? Wenn nicht, dann kümmer dich mal um das OnChange-Ereigniss von einer Trackbar, um Min- und Max-Werte und schau dir Position an.
|
Re: Laustärke Visual equalizer
ich bin irgendwie zu blöd dazu. ich schaue auf OnChange-Ereigniss da steht nix mit max un min. was mach ich falsch?
|
Re: Laustärke Visual equalizer
Sollte nicht weiter schwer sein.
Der Objektinspektor zeigt, dass bei der TTrackBar Min mit 0 und Max mit 10 voreingestellt sind. Der Wert 0 kann in 1 geändert werden. In in das OnChange-Ereignis der TTrackBar wird
Delphi-Quellcode:
eingetragen.
SetMPVolume(MediaPlayer1, TrackBar1.Position * 100);
|
Re: Laustärke Visual equalizer
so ich habe den code "SetMPVolume(MediaPlayer1, TrackBar1.Position * 100);" jetzt ausprobiert. egal was ich mache die lautstärke ändert sich nicht. in dem code fehlt ja noch der anfang und das ende von der trackbar oder?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz