2015-04-25 26 views
5

Ecco il codice, come il titolo dice che la musica si interrompe dopo 10 secondi, ho riprodotto il file normalmente in VLC o altri programmi, dura più di 5 minuti.JavaFX MediaPlayer - La musica si interrompe dopo 10 secondi

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

Questo è strano. Puoi aggiungere più dati, come i dettagli della tua piattaforma alla domanda? – ItachiUchiha

risposta

-2

Prova AudioClip invece:

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

La tua domanda è stata già chiesto e ha risposto qui: MediaPlayer stop playing after about 5 seconds

Sembra che il garbage collector ereases l'istanza MediaPlayer dopo aver terminato il metodo. Metti la dichiarazione di MediaPlayer sopra il metodo e dovrebbe funzionare.

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

(io non sono in grado di inviare commenti, quindi sono costretto a scrivere una risposta.)

+0

In realtà ho dovuto spostare l'intera istanziazione all'esterno del metodo, non solo la dichiarazione. Il link che hai postato in realtà non punta a un problema JavaFX, ma è interessante osservare lo stesso comportamento. – LeBird

+0

Dubito che sarei arrivato al punto in cui avrei reso il garbage collector responsabile di quello. Mi hai salvato un sacco di tempo! Molte grazie :) – geisterfurz007

Problemi correlati