2014-05-06 11 views
5

voglio che il mio file mp3 si ripeta dopo che è finito. ma io sono in grado di creare un ciclo di giocare il mio file ripetutamente (io ho usato questo codice, ma solo che gioca per primo secondo della mia file dopo che finito)[A] Come eseguire una ripetizione MP3 in javafx?

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

Modificato: ho usato MediaPlayer ma è contatore di cicli non ha funzionato correttamente per esempio la prima volta ho giocato il mio file mp3 ha giocato 2 volte e nel 3 ° tempo di gioco improvvisamente si ferma seconda volta ho eseguito di nuovo la mia app e ha giocato 1 volta e in metà della seconda volta di giocare si ferma qui è il mio codice:

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

a.play(); 

qualsiasi idee? grazie in anticipo.

+0

cosa è 'myMusic.bgSound'? Non è un campo di 'AudioClip', assumendo' myMusic' è un 'AudioClip'. – ggovan

+0

modificato: myMusic è un AudioClip –

+0

È necessario pubblicare la risposta come risposta a questa domanda, non nella domanda stessa. – ggovan

risposta

6

ho trovato la mia soluzione ho usato il metodo 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

Assicurati di contrassegnare questa domanda come risposta (piccolo segno di spunta verde) il prima possibile. – ajp15243

+0

Ma perché la soluzione originale non funziona? Ho lo stesso problema. Quando uso 'setCycleCount (AudioClip.INDEFINITE);' Il mio file wav si ripete circa 5 volte poi si ferma. [AGGIORNAMENTO] Eevn la tua soluzione non funziona per me –

+1

@ Zeta.Investigator Voleva darti la soluzione a questo problema se hai ancora bisogno. Se si intende utilizzare MediaPlayer per riprodurre il proprio suono, è necessario inserirlo in un MediaView collegato alla scena corrente. Ecco perché smette di giocare. A volte, se la messa a fuoco viene persa in qualsiasi finestra, smetterà di giocare. Se metti MediaPlayer in MediaView e lo metti nel tuo pannello non dovrebbe smettere di giocare. –

Problemi correlati