日期:2014-05-20  浏览次数:20730 次

java 新手问题 关于播放音频文件问题
我写了一个程序,要求连续播放一些WAV文件.
大概的流程意思是,播放WAV文件,循环播放。
播放(1号.WAV---间隔2秒---2号.WAV---间隔2秒---3号.WAV----间隔两秒-----4号.WAV-----间隔2秒----1号.WAV----间隔两秒----2号.WAV-------以此类推)
基本上就是4个WAV从第一首 到 最后一首 一直播放,然后到最后一首之后,再回到第一首。
我刚刚学习java,确实不太明白.
我写的第一个方法
public 播放(String s)
{
            URL cb;
            File f = new File(s);
            cb = f.toURL();
            AudioClip aau;
            aau = Applet.newAudioClip(cb);
            aau.play();
}
然后用这个方法,想实现之前那个需求
while(true)
{
     try {
                播放("E:\\1.wav");  
                Thread.sleep(2000);
                播放("E:\\2.wav");
                Thread.sleep(2000);
                播放("E:\\3.wav");
                Thread.sleep(2000);
                播放("E:\\4.wav");
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
               
            }
}
可是出现情况,第一个WAV没播放完呢,第二个就开始了,最后就都乱了。
请问各位大神,我这个应该怎么办呢?
如何解决...
跪谢!!!
------解决方案--------------------
这样的确是有问题的。AudioClip play接口实现应该是多线程的,所以,你执行到play()时,会产生另个线程play,主程序继续执行下去,也就是你在play的同时,主线程已经在执行sleep了。所以会乱了。
根据你的说法,播放间隔精确的话得重写play方法了,不精确sleep的时间要加上视频的时间。