2015-04-25 5 views
5

Вот код, как и название, говорит, что музыка останавливается после 10 секунд, я обычно воспроизводил файл в vlc или других программах, он длится более 5 минут.JavaFX MediaPlayer - музыка останавливается через 10 секунд

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

Это странно. Можете ли вы добавить к вопросу дополнительные данные, такие как детали вашей платформы? – ItachiUchiha

ответ

-2

Try AudioClip вместо:

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

Ваш вопрос уже задавали и ответил здесь: MediaPlayer stop playing after about 5 seconds

Кажется, что сборщик мусора ereases экземпляр MediaPlayer после завершения метода. Поместите объявление MediaPlayer над методом, и оно должно работать.

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

(я не в состоянии отправлять комментарии, так что я вынужден написать ответ.)

+0

На самом деле мне пришлось переместить весь экземпляр вне метода, а не только объявление. Ссылка, которую вы указали, на самом деле не указывает на проблему JavaFX, но интересно наблюдать за тем же поведением. – LeBird

+0

Я сомневаюсь, что я бы дошел до того уровня, в котором я собирался сделать сборщик мусора ответственным за это. Ты спас мне много времени! Большое спасибо :) – geisterfurz007

Смежные вопросы