JavaFX MP3 abspielen?
Hallo.
Ich möchte ein Projektexternes .mp3 file irgendwo auf der Festplatte ablspielen. Hab schon zimlich viel gegoogled, es kommt aber nichts brauchbares.
Danke im vorraus für jede Antwort.
3 Antworten
Ja hallo (wieder) - Schade, dass es leider mittlerweile keine neuen Details gab hinsichtlich deiner letzten Frage, was sich mit dem selben Thema befasst.
Sofern du nun Eclipse mit JDK 8 zum laufen gebracht hast, sollte dein ursprünglicher Code nämlich funktionieren. - Ich ändere allerdings den Pfad ab, da du von einer externen Datei ausgehst, zudem wäre für die anderen interessierten Antwort-Geber noch die Information relevant, dass du mit JavaFX arbeitest.
public void start(Stage primaryStage) {
Media media = new Media("C:\\temp\\MeinSong.mp3");
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.play();
primaryStage.setTitle("");//();setTitle("Audio Player 1");
primaryStage.setWidth(200);
primaryStage.setHeight(200);
primaryStage.show();
}
Sofern du JavaFX ausschließen möchtest, da es für dich nicht mehr relevant ist, gib bitte bescheid. Denn in so einem Falle wird das abspielen von MP3 Songs nämlich nicht mehr so trivial.
Sorry, aber nochmal zu deiner vorherigen Frage, ergänzend, da ich schlichtweg vermute, dass bei dir noch nicht auf das JDK 8 referenziert wird und du deshalb deinen Code nicht ausführen kannst. Hier ein Tutorial, dass dich hierbei unterstützt:
Suuper, dass es soweit geklappt hat.
Zu JavaFX ist anzumerken, dass du hier deine Methode nicht so starten solltest:
HelloWorld hw = new HelloWorld();
Stage ps = new Stage();
hw.start(ps);
Rufe in deiner Main-Methode ganz einfach: launch auf.
public static void main (String[] args) { launch(args); }
In deiner start() Methode muss der Player im FX-Application-Thread laufen.
D.h. dann die entsprechende Stelle via Plattform.runlater() ausführen:
Platform.runLater(new Runnable() { @Override public void run() { Media media = new Media("file:///C:/temp/1.mp3"); MediaPlayer mediaPlayer = new MediaPlayer(media); mediaPlayer.play(); } });
NICE funktioniert SUPER. DAAAAAAAANKE!!!!!!!!!!!!!!
Das ist eher ungewöhnlich, dass es 'einfach so stoppt'.
Schließt du den eventuell Die Scene?
Gibt es eine Exception?
Friert der Bildschirm ein?
nein, nichts von alledem.
erst erscheint ein kleines, weißes fenster, wo oben Titel steht, das stück started, hört 15 sec später wieder auf, fenster bleibt.
ok, jetzt passt alles. sorry fürs nachfragen, ich bab auf stackoverflow einen thread dazu gefunden.(
http://stackoverflow.com/questions/6241687/mediaplayer-stop-playing-after-about-5-seconds
). man sollte andscheinend den media player vorher vereinbahren.
Offensichtlich ist die Ursache die Garbagecollection. Ich würde das sogar als Bug deklarieren.
Nachdem der Player nur innerhalb einer Methode die Gültigkeit hat, wird diese dann automatisch weggeräumt, wenn Speicherbedarf besteht.
Die Deklaration der Variable als Statische/Instanz-Variable dürfte bereits für dich zur Lösung führen, ja.
Du kannst mit Hilfe des FileChoosers von JavaFX dir eine entsprechende .mp3 Datei in ein File Object abspeichern. Und dann einfach mit Hilfe der Media und der MediaPlayer Klasse diese abspielen.
Media constructor und den dann abspielen. Vorher noch in einen try Catch Block mit dem File constructor den Pfad festlegen
Vorher hats halt meinen ganzen code für falsch befunden. Jetzt nichtmehr, ich bekomm bie diesem code:
Diese vehlermeldung: