在为soundloop创建之前停止/暂停所有线程

时间:2011-10-04 02:36:21

标签: java multithreading

我正在尝试创建一个使用Javazoom mp3包播放声音的音板程序。

我为每个按钮创建一个新线程,因为我希望每次单击按钮时停止线程,以便停止当前播放的声音并再次启动它,从而选择一个新的随机声音片段。我的逻辑是,这将使用户能够在当前声音播放完毕之前单击按钮,它将停止声音并开始下一个剪辑。

我的问题是有一些方法可以在创建一个线程之前停止它,或者确保一个线程在当前正在运行然后重新启动时自行停止。我已经尝试将线程创建对象移动到actionlistener之外,然后在.start之前尝试.start但是这不起作用。

感谢您的任何帮助

1 个答案:

答案 0 :(得分:0)

我建议将声音播放器声音线程转换为任务,然后使用ExecutorService运行它们。在创建,运行和停止线程时,ExecutorService可以让您更好地控制。

有各种ExecutorService实现,可以使用Executors类中的静态工厂方法创建。