2017-07-07 71 views
1

我試圖在這段代碼中播放一個.wav文件,但由於某種原因它只播放了長達三秒鐘的分鐘長的歌曲。有沒有人有任何想法爲什麼?我的1分半鐘WAV文件只播放了三秒

private void btnPlayActionPerformed(java.awt.event.ActionEvent evt) { 

    try { 
     JFXPanel j = new JFXPanel(); 
     String uri = new File("04_Kensington_Chump (1).wav").toURI().toString(); 
     new MediaPlayer(new Media(uri)).play(); 
    } catch (Exception ex) { 
     JOptionPane.showMessageDialog(this, ex); 
    } 

}  

回答

3

你正在創建的方法一個新的媒體播放器,剛離開它有沒有將它存儲在一個變量,你可以稍後訪問。這會導致垃圾收集器撿起它。

創建一個列表來存儲所有的媒體播放器,因此垃圾回收器不會銷燬它們,這應該解決這個問題

MediaPlayer player = new MediaPlayer(new Media(uri)); 
player.play(); 
someList.add(player); 

然後定期清洗名單,當球員完成播放音頻

+0

謝謝!這工作完美。 –