2014-05-06 14 views
5

Chcę, aby mój plik mp3 powtórzył się ponownie po zakończeniu. ale jestem w stanie stworzyć pętlę grać mój plik wielokrotnie (użyłem tego kodu, ale tylko odgrywa pierwszej sekundzie mojego pliku po jego zakończeniu)[A] Jak zrobić powtarzanie plików MP3 w javafx?

AudioClip myMusic .... 
myMusic.setCycleCount(AudioClip.INDEFINITE); 
myMusic.play(); 

edycja: użyłem MediaPlayer ale licznik cykli nie działał poprawnie, na przykład po raz pierwszy odtwarzałem plik mp3, w którym był odtwarzany 2 razy, a po raz trzeci gra nagle zatrzymał się po raz drugi uruchomiłem ponownie moją aplikację i zagrał 1 raz i połowę drugiego czasu odtwarzania zatrzymuje się Oto mój kod:

URL resource = getClass().getResource("abcd.mp3"); 
    MediaPlayer a =new MediaPlayer(new Media(resource.toString())); 
    a.setCycleCount(MediaPlayer.INDEFINITE); 

a.play(); 

dowolne pomysły? z góry dzięki.

+0

Co jest 'myMusic.bgSound'? Nie jest to pole 'AudioClip', zakładając, że' myMusic' to 'AudioClip'. – ggovan

+0

edytowane: myMusic to AudioClip –

+0

Powinieneś zamieścić swoją odpowiedź jako odpowiedź na to pytanie, a nie na pytanie. – ggovan

Odpowiedz

6

znalazłem moje rozwiązanie i stosowane metody setOnEndOfMedia:

URL resource = getClass().getResource("abcd.mp3"); 
MediaPlayer a =new MediaPlayer(new Media(resource.toString())); 
a.setOnEndOfMedia(new Runnable() { 
     public void run() { 
     a.seek(Duration.ZERO); 
     } 
    }); 
    a.play(); 
+0

Należy oznaczyć to pytanie jako odpowiedź (mały zielony znacznik wyboru) tak szybko, jak to możliwe. – ajp15243

+0

Ale dlaczego oryginalne rozwiązanie nie działa? Mam ten sam problem. Kiedy używam 'setCycleCount (AudioClip.INDEFINITE);' Mój plik WAV powtarza się około 5 razy, a następnie zatrzymuje. [UPDATE] Eevn Twoje rozwiązanie nie działa dla mnie –

+1

@ Zeta.Investigator Chciałem dać ci rozwiązanie tego problemu, jeśli nadal potrzebujesz. Jeśli zamierzasz używać MediaPlayera do odtwarzania dźwięku, musisz go umieścić w MediaView dołączonym do aktualnej sceny. Dlatego przestaje grać. Czasami, gdy ostrość zostanie utracona na jakimkolwiek oknie, przestanie grać. Jeśli umieścisz MediaPlayer w MediaView i umieścisz go w swoim panelu, nie powinien przestać grać. –