JavaFX MP3 abspielen?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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:

https://youtube.com/watch?v=S5xeXawYgK0

Vorher hats halt meinen ganzen code für falsch befunden. Jetzt nichtmehr, ich bekomm bie diesem code:

package helloworld;

import javafx.application.Application;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;

public class HelloWorld extends Application {
public static void main(String[] args) {
HelloWorld hw = new HelloWorld();
Stage ps = new Stage();
hw.start(ps);

}

public void start(Stage primaryStage) {
Media media = new Media("D:\\Bsp.mp3");
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.play();
primaryStage.setTitle("Title");//();setTitle("Audio Player 1");
primaryStage.setWidth(200);
primaryStage.setHeight(200);
primaryStage.show();
}
}

Diese vehlermeldung:

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.IllegalStateException: Not on FX application thread; currentThread = main
at com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:236)
at com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:423)
at javafx.stage.Stage.(Stage.java:241)
at javafx.stage.Stage.(Stage.java:227)
at helloworld.HelloWorld.main(HelloWorld.java:12)
... 11 more
Exception running application helloworld.HelloWorld
0
@yeretor

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();
    }
});
1
@yeretor

... oder auch nicht. Es stoppt mein knapp 15 min. langes beispiel stück nach 15 sek. woran liegt das?

1
@yeretor

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? 

1
@KnusperPudding

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.

0
@yeretor

Vermutlich ist es das.

- Freut mich dass es für dich klapp. Viel Spass und Erfolg damit.

0
@KnusperPudding

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.

1

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

Wie kann man mit CMD eine .mp3 abspielen ohne den player zu sehen?

Ich möchte mit einem batch file eine .mp3 datei abspielen, jedoch dass man den Player sieht.

Freue mich über jede Antwort!

...zur Frage

MP3 Player => File format error

Hallo, ich habe folgendes Problem: Mein Mp3 player spielt kein lied mehr ab... kaum will ich in das menü wo ich die musik auswählen kann, kommt am laufenden band "File format error". Nachdem ich das festgestellt hatte, hatte ich ihn an mein macbook angeschlossen und siehe da, der mp3 player konnte nicht erkannt werden. Kurz an den PC angeschlossen, da hats dann funktioniert. Da waren dann aber neben den mp3 Daten auch ganz merkwürdige andere Daten drauf. Ich habe versucht sie zu löschen aber dann hieß es Dateiname zu lang oder unbekannt. Gut also nochmal am macbook ausprobiert... da funktionierts eben so wenig. Hab dann einfach mal ein neues lied drauf geladen und das lässt sich auch abspielen nachdem die meldung "format file error" ungefähr 10mal aufgefloppt kam -.-'

was ist da los? Ich weis nich wie ich den wieder richtig zum laufen bekomme... Hoffe ihr könnt mir weiter helfen

LG MiMus +

...zur Frage

Weiß jemand eine Lösung für dieses Fiat Punto Grande USB-Stick/Mediaplayer-Problem?

Mein Fiat Punto Grande besitzt einen USB-Anschluss, um Musik von einem USB-Stick abspielen zu können.

Doch mein Media-Player will nicht immer alle Songs am USB-Stick abspielen. Und welche MP3-Files er abspielt ändert sich jedes Mal. Oft spielt er nur mehr 3 von 15 Songs auf dem Stick ab. Dann wieder fast alle.

Ich weiß nicht woran es liegen könnte. Ich habe die Firmware von Blue&Me bereits neu draufgespielt. Ich habe andere USB-Sticks probiert. Ich habe die Sticks neu formatiert. Nichts scheint etwas zu bringen.

Kennt jemand das Problem? Oder "verwirren" den MP3-Player irgendwelche speziellen MP3-Files? Gibt es eine Unterkategorie von MP3-File mit dem der Player eventuell nicht zurecht kommt?

...zur Frage

Welches Format anstatt mp3, bei dem die Dateien ähnlich gross werden und vergleichbare Qualität aufweisen?

hallo

ich habe gelesen, dass MP3 Dateien ab Juli 2018 "ablaufen" bzw. von den Systemen dann nicht mehr gespielt werden.

Ich suche daher Erfahrungsberichte, welches Format hier zur Konvertierung empfehlenswert sind.

Die Dateien sollten nach dem Umwandeln ungefähr gleich gross sein und die Qualität sollte MP3 entsprechen.

Ich höre meine MP3 Musik auf einer Stereoanlage mit grossen 3-Wegeboxen. Ein deutlichen Qualitätsverlust darf hier also nicht zustande kommen.

...zur Frage

Ist das mp3-Format minderwertig?

Ist MP3 minderwertig ? Ich habe mitbekommen, das dass MP3 Format nur einen geringen Teil der wirklichen Musik wiedergeben kann. Wer kann mir etwas dazu sagen ?

...zur Frage

Film von Festplatte am Fernseher abspielen wie?

Hab mehrere Filme im avi. format auf meiner festplatte, wie kann ich die am Fernseher gucken, am Receiver ist ein USB Port, aber der nimmt nur MP3 und JPEG -.-, wie kann ich das machen?

...zur Frage

Was möchtest Du wissen?