Java clip.play在第3次调用时挂起

时间:2010-10-24 19:28:36

标签: java audio

我正在Ubuntu 10.10上运行java(Netbeans)应用程序。以下代码在调用前两次时正确播放声音。在第三次调用时,应用程序挂起,我必须终止该进程。有什么想法吗?

try {
        String path = ApplicationContext.getInstance().getAppDirectory();
        java.net.URL url = new java.net.URL("file:"+path+"my.wav");
        java.applet.AudioClip clip = java.applet.Applet.newAudioClip(url);
        clip.play( );
    }catch (java.net.MalformedURLException malex){
        Logger.log(malex);
    }

没有报告任何异常或错误。

1 个答案:

答案 0 :(得分:0)

使用strace进行调试变得非常复杂。我最终采取了简单的方法。这是我的解决方案:

java.io.InputStream in = new java.io.FileInputStream(path+"my.wav"); 
sun.audio.AudioStream as = new sun.audio.AudioStream(in);
sun.audio.AudioPlayer.player.start(as);

不幸的是,这是一个好的解决方案,因为: 警告:sun.audio.AudioStream是内部专有API,可能会在将来的版本中删除。