2015-04-25 40 views
5

Oto kod, tak jak tytuł mówi, że muzyka zatrzymuje się po 10 sekundach, odtwarzałem plik normalnie w vlc lub innych programach, trwa to dłużej niż 5 minut.JavaFX MediaPlayer - Muzyka zatrzymuje się po 10 sekundach

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

To jest dziwne. Czy możesz dodać więcej danych, na przykład dane swojej platformy do pytania? – ItachiUchiha

Odpowiedz

-2

Spróbuj AudioClip zamiast:

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

Twoje pytanie zostało już zadane i odpowiedzi tutaj: MediaPlayer stop playing after about 5 seconds

Wydaje się, że garbage collector ereases instancję MediaPlayer po zakończeniu metody. Umieść deklarację MediaPlayer nad metodą i powinna działać.

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

(nie jestem w stanie komentować, więc jestem zmuszony napisać odpowiedź.)

+0

Musiałem przenieść całą instancję poza metodę, a nie tylko deklarację. Link, który wysłałeś, nie wskazuje na problem JavaFX, ale interesujące jest obserwowanie tego samego zachowania. – LeBird

+0

Wątpię, czy dotarłbym do punktu, w którym za to odpowiedzialny byłby śmieciarz. Uratowałeś mi dużo czasu! Wielkie dzięki :) – geisterfurz007