![]() |
Cross-Fader
Hallo,
Ich möchte mir einen Crossfader programmieren kann mir da jdm. weiterhelfen.... Wie soll ich das am besten machen??? |
Re: Cross-Fader
Ich wuerde dafür ne Trackbar nehmen...
Die hat am meisten Ähnlichkeit mit nem richtigen Crossfader. Naja und dann musst du ins OnChange Ereignis eintragen was du machen willst... MfG Florian :hi: |
Re: Cross-Fader
Das ist mir schon klar!!!!!
Nur wie programmiere ich das mit der Lautstärke??? Dafür bracuhe ich dann doch auch zwei kanäle oderso??? |
Re: Cross-Fader
|
Re: Cross-Fader
JA ich hab schonmal danach gesucht...
aber das sind nur halbe sachen... Auserdem ist das nur für MasterVolumen und richtig verständlich sind die code-schnipsel auch nicht...besondesr wenn man die units nirgens finden kann!!!! Also für produktive hilfe wäre ich sehr dankbar. |
Re: Cross-Fader
Welche Lautstärke willst du denn dann ändern? Die der einzelnen Kanäle (also praktisch die Balance) oder was?
Arbeitest du mit dem TMediaPlayer oder willst du die Systemlautstärke ändern oder was? Nen bisschen mehr Informationen wären nicht schlecht!!! MfG Florian :hi: |
Re: Cross-Fader
Am besten wäre :
wenn ich zwei mediplayer komponenten nehmen könnte und dann zwischen den beiden hin und her faden könnte!!! |
Re: Cross-Fader
Aha! Jetzt ist verständlich was du machen willst, leider habe keine Idee wie man das machen könnte... :(
Die beiden MediaPlayer spielen die Dateien ja immer in der gleichen Lautstärke ab, nur das Mastervolume könnte man ändern. :roll: Vielleicht fällt ja jemand anders eine Möglichkeit ein. MfG Florian :hi: |
Re: Cross-Fader
Ich glaube das mit Mediakomponenten zu machen ist nur möglich wenn du auch 2 soundkarten besitzt. Wenn du 2 Wave-Dateien abspielen willst, kannst du die beide einlesen und mit WaveOutOpen einen Stream erstellen in dem du die beiden Waves dann zusammenmischst, ungefähr so:
(WaveDaten1 * FadeLevel + WaveDaten2 * (100-FadeLevel))div 100 wenn FadeLevel von 0 bis 100 geht... Allerdings solltest du mit mmSystem aufpassen ;) Ich habe so einige Probleme dass mit Windows 98 zum Laufen zu kriegen, aber hey... :D kannst ja noch DirectSound benutzen MfG, red |
Re: Cross-Fader
Hmm so ähnlich hab ich mir das auch gedacht....
Ich weiss auch wie ein crossfader funktioniert.... Aber wie programmiere ich sowas???? |
Re: Cross-Fader
Informationen zu DirectSound findest du im MS Platform-SDK.
Einfacher geht es, wenn du eine Bibliothek wie ![]() ![]() |
Re: Cross-Fader
hm ich weiß zwar nicht wie alt des hier ist, aber fals mal jemand ne lösung mit 2 mediaplayer kompos sucht, is des eigentlich ganz einfach zu machen:
![]() da is der code nun kann man die funktion aufrufen SetMPVolume(MediaPlayer1, lautstärke); ich hab diese in einen timer mit intaval 100 ms getan, und lass ich halt so wie ich des haben will die lautstärke von mediaplayer1 hochregeln und von mediaplayer2 runter. ganz easy, da muss man garnix mit 2 soundkarten machen :-) |
Re: Cross-Fader
Es geht auch noch viel einfacher!
Such mal nach einer Komponente namens TBassDllPlayerEx! Das ist ein Mediaplayer für bisschen anspruchsvollere sachen! Von denen legst du dann 2 Stück auf deine Form! Die Komponente hat Volume bequem als Byte zum Einstellen! Sprich du schreibst einfach BassDllPlayerEx1.volume := ... Diese Lautstärke gilt dann nur für diesen Player! Ich glaub, damit müsstest du weiterkommen! Thomy PS: Maximale Lautstärke entspricht 100! Cya |
Re: Cross-Fader
Zitat:
|
Re: Cross-Fader
Nach
![]() ![]() ![]() Der Mediaplayer ist immer so 'ne Sache bei verschiedenen PC's zB. bei der wiedergabe von MP3's. PS.: Ich hasse den Mediaplayer (in Delphi) :stupid: |
Re: Cross-Fader
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
uses
MMSystem;
Delphi-Quellcode:
(* Lautstärke Mediaplayer *)
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;
Delphi-Quellcode:
procedure TForm1.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;
Delphi-Quellcode:
Weiß nicht, ob´s noch was nützt, aber hiermit stelle ich in meinem Player die Lautstärke des TMediaplayers ein und nicht die der Soundkarte.
SetMPVolume(MediaPlayer1, Trackbar_volume.Position);
Wenn mal einer versucht das mit 2 Mediaplayerkomponenten umzusetzen.... Ich probiers später mal! Also hab´s probiert und es funzt... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 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