![]() |
mehrere MP3s abspielen
Hi,
wenn ich eine Liste von MP3s abspielen will, so spielt er mir nur das letzte. Gehe ich die Liste durch und füge ein showmessage ein, so spielt er das Lied solange, bis ich OK klicke, dann hört er auf und spielt das nächste. Deshalb wird ohne showmessage auch direkt das letzte gespielt. Wie kann man dieses Verhalten abstellen. ich mache nur folgendes in einer Schleife:
Delphi-Quellcode:
mediaplayer1.filenem := filename;
mediaplayer1.open; mediaplayer1.play; |
Re: mehrere MP3s abspielen
Moin Hansa,
schau Dir dazu mal die Eigenschaft Notify und das OnNotify Event an. |
Re: mehrere MP3s abspielen
Das gibt es im Mediaplayer nicht.
|
Re: mehrere MP3s abspielen
Liste der Anhänge anzeigen (Anzahl: 1)
Moin Hansa,
Zitat:
|
Re: mehrere MP3s abspielen
Also wenn ich richtig verstanden habe hast du eine Schleife, die nach jedem Aufruf von Play sofort den nächsten Durchlauf macht, oder?
Ich würde nach dem Play- Aufruf eine While-Schleife machen (also innerhalb der PlaySchleife), die so lange läuft wie MediaPlayer.Position < MediaPlayer.Length ist. Innerhalb dieser Schleife kannst du eigentlich machen was du willst, würd ich sagen. Vielleicht die Messages abarbeiten, damit das Programm noch reagiert. So dürfte deine PlaySchleife erst weiterlaufen wenn der Track zuende ist. Bis dann, S - tefano |
Re: mehrere MP3s abspielen
@Chris: was soll ich denn mit dem notify machen ?
@s-tefano: das wäre meine Methode, "Taste drücken, um zu verhidern, daß die Liste bis zum Ende durchlaufen wird, ohne abzuspielen. Kommt keine Musik mehr dann mit Taste weiter!" :mrgreen: |
Re: mehrere MP3s abspielen
Hmhmhm.... hast Recht, wäre eine Abwandlung deiner Message-Methode. Nur dass du keine Box wegklicken musst ;-)
Notify ist ein Event das ausgelöst wird wenn eine Aktion des Players abgeschlossen wurde. So kannst du sobald du ein Notify bekommst zum nächsten Lied weiterschalten. Deine Schleife kannst du damit dann nicht mehr benutzen, weil du ja auf ein Event reagieren musst. Allerdings weiß ich nicht, bei welchen Ereignissen das Notify immer ausgelöst wird. Du kannst bspw auch ein Notify bekommen wenn sich die Position ändert oder der Player mit spielen angefangen hat; mit dem Notify kenne ich mich nicht gut genug aus. Ich würds mit "unserer" Methode machen, da musst du weniger modifizieren :mrgreen: Bis dann, S - tefano |
Re: mehrere MP3s abspielen
Das kann ja alles wohl nicht wahr sein. :shock: Da werden Fragen gestellt, wie man Spiele programmiert, CDs brennt oder kopiert. :mrgreen: Aber keiner weiß auf einfache Weise einen Mediaplayer so zu programmieren, daß er problemlos mehr als ein Lied dpielt. 8)
|
Re: mehrere MP3s abspielen
Moin Hansa,
Zitat:
Auf True setzen, und im OnNotify Event warten, dass die letzte Methode, in Deinem Falle Play, das Event auslöst. Probiert hab' ich das nicht, aber das ist der beschriebene Weg. Zitat:
|
Re: mehrere MP3s abspielen
Tsestsestses
du hast doch jetzt schon 3 Lösungsansätze, von denen zwei mit Sicherheit funktionieren... wenn dus ohne Schnörkel haben willst und etwas mehr Zeit hast, um sie ins Wälzen von Tutorials zu investieren, geh mal nach ![]() Meine Empfehlung an dich ist, entweder das mit der Messagebox bzw. Schleife zu machen, oder etwas mit dem Notify-Zeug zu experimentieren. Wie ich aber in nem anderen Thread gelesen hab, hast du nicht mehr ganz so viel Zeit dafür, und wenns einfach nur laufen soll... dann nehm doch um Himmels willen die weniger elegante Lösung... Dann setz noch ein Application.processmessages in die Schleife und fertig ist die Wurst. Oder, wenn dus das mit der Schleife nicht willst, mach dir nen Timer mit dem selben Intervall in dem die PlayerPosition verändert wird; eine Millisekunde wars glaub ich. In den Timer setzt du nen Zähler, im OnTimer zählst du diesen hoch und vergleichst mit der PlayerPosition. Wenn das Ende erreicht ist, lädt der Timer das neue Musikstück, startet das Abspielen und setzt seinen Zähler wieder auf 0. Ok, sauber ist das auch nicht, aber jetzt hast du vier Lösungsansätze und eine Alternative (fmod)... Bis dann, S - tefano |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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