2011-01-10 72 views
0

我最近使用一種解決方案來解決使用Jlayer播放Java歌曲時的單線程問題。但是Kaleb Brasee的這個解決方案並沒有提示你如何阻止玩家,也就是說怎麼才能調用player.close()?如何停止當前播放歌曲與JLayer一起使用一個線程?

卡萊布的代碼是:

Executor executor = Executors.newSingleThreadExecutor(); 
executor.execute(new Runnable() { public void run() { 
/* do something */ 
} }); 

,這是我把運行代碼()

if(player != null) player.close(); 

try{ 
player = new Player(new FileInputStream(musicD.getPath())); 
player.play(); 
}catch(Exception e){} 

的問題是,竟有這樣的解決保持GUI積極而問題音樂播放(只有另一個線索 - 我想要的),我無法開始播放另一首歌曲:-(

我該怎麼辦?

回答

0

那麼,在調整代碼之後,我意識到替換當前線程可以解決問題;它允許你開始播放不同的歌曲,即使前一個還沒有完成。

這是新的代碼:

執行人執行人; //類成員

這樣做,你要播放一首歌曲,每次簡單地替換現有歌曲的主題,
從而使您能夠在另一首歌曲無論其他

進度executor = Executors.newSingleThreadExecutor();
executor.execute(new Runnable(){public void run(){
/* do something */
}});

相關問題