2015-04-25 16 views
5

Hier ist der Code, wie der Titel sagt die Musik stoppt nach 10 Sekunden, ich spielte die Datei normalerweise in VLC oder anderen Programmen, dauert es mehr als 5 Minuten.JavaFX MediaPlayer - Musik stoppt nach 10 Sekunden

public void music(){ 
     String bip = "src/data/fjordmusic.mp3"; 
     Media hit = new Media(Paths.get(bip).toUri().toString()); 
     MediaPlayer mediaPlayer = new MediaPlayer(hit); 
     mediaPlayer.play(); 
    } 
+0

Diese seltsam. Können Sie der Frage weitere Daten hinzufügen, z. B. Ihre Plattformdetails? – ItachiUchiha

Antwort

-2

Try Audioclip statt:

javafx.scene.media.AudioClip;

public void music(){ 
     String bip = "src/data/fjordmusic.mp3"; 
     Media hit = new Media(Paths.get(bip).toUri().toString()); 
     AudioClip mediaPlayer = new AudioClip(hit.getSource()); 
     mediaPlayer.play(); 
    } 
6

Ihre Frage bereits gestellt und beantwortet hier: MediaPlayer stop playing after about 5 seconds

Es scheint, dass der Garbage Collector ereases die Mediaplayer-Instanz nach der Methode beenden. Setzen Sie die Deklaration von MediaPlayer über die Methode und es sollte funktionieren.

MediaPlayer mediaPlayer 
public void music(){ 
    String bip = "src/data/fjordmusic.mp3"; 
    Media hit = new Media(Paths.get(bip).toUri().toString()); 
    mediaPlayer = new MediaPlayer(hit); 
    mediaPlayer.play(); 
} 

(Ich bin nicht in der Lage Kommentare zu schreiben, so dass ich eine Antwort zu schreiben gezwungen.)

+0

Ich musste eigentlich die gesamte Instantiierung außerhalb der Methode verschieben, nicht nur die Deklaration. Der Link, den Sie gepostet haben, verweist nicht auf ein JavaFX-Problem, aber es ist interessant, dasselbe Verhalten zu beobachten. – LeBird

+0

Ich bezweifle, dass ich zu dem Punkt gekommen wäre, wo ich den Müllsammler dafür verantwortlich machen würde. Du hast mir viel Zeit gespart! Danke vielmals :) – geisterfurz007