如何判断AudioPlayer中是否有文件正在播放?

时间:2011-05-10 18:29:37

标签: java multithreading

为什么以下代码不能与我合作? :S

AudioPlayer.player.start(file1);
while(AudioPlayer.player.isAlive()) {}
AudioPlayer.player.start(file2);

我想逐个播放我的文件:S

1 个答案:

答案 0 :(得分:1)

我假设您指的是sun.audio.AudioPlayer。如果是这样,您应该知道sun.*类仅供JRE使用;你应该查看javax.sound.*包。 (另见the Java tutorial on sound)。

话虽如此,isAlive()方法在Thread类上,并且由于音频层线程附近,此方法永远不会返回false。

我会尝试通过查看基础InputStream是否已关闭(例如,通过覆盖close()方法)来检测歌曲的结尾。或者,您可以创建一个InputStream,对您尝试播放的两个输入流进行排序。