【发布时间】:2011-01-10 11:43:59
【问题描述】:
我最近使用了一个解决方案来解决使用 Jlayer 在 Java 中播放 mp3 歌曲时一次一个线程的问题。但是 Kaleb Brasee 的这个解决方案并没有暗示你如何阻止播放器,即如何调用 player.close()?
Kaleb 的代码是:
Executor executor = Executors.newSingleThreadExecutor();
executor.execute(new Runnable() { public void run() {
/* do something */
} });
这是我放在run()中的代码
if(player != null) player.close();
try{
player = new Player(new FileInputStream(musicD.getPath()));
player.play();
}catch(Exception e){}
问题在于,尽管这解决了在音乐播放时保持 gui 处于活动状态的问题(仅在另一个线程中——我想要的),但我无法开始播放另一首歌曲 :-(
我能做什么?
【问题讨论】:
标签: java multithreading jlayer