将项目导出到JAR文件时,SourceDataLine不起作用

时间:2013-12-13 08:23:59

标签: java javasound audio

为什么在将项目导出到JAR文件时SourceDataLine不起作用?

我正在开发一个应对AUDIO-DATA的项目。以PCM格式接收BYTE流并将这些二进制流转换为可以听到的声音。我使用javax.sound.sampled.SourceDataLine来实现我的要求。

当我在Eclipse中调试程序时,everthing运行良好,但是当我将所有代码和库打包到一个JAR文件中时(确切地说,它是一个可以在双击时直接运行的RUNNABLE)。我听不到声音。以正确的方式接收数据流,但javax.sound.sampled.SourceDataLine不起作用。

(我的程序界面基于AWT(不是摆动),但我不认为这与我的问题有关)

1 个答案:

答案 0 :(得分:0)

Eclipse环境和jar文件之间存在很多差异。为了回答您的问题,我们需要知道您可能会收到的错误消息。

常见问题:文件位置可能无法正常工作,因为操作系统文件系统不适用于jar内部。在这种情况下,URL是识别资源文件的更好方法。还有一些方法可以指定资源的位置,这与使用相对与绝对寻址的方式有关。尝试将资源加载到InputStream时,有些人也会遇到标记/重置错误。

但是,您说数据IS正确加载,但只有SourceDataLine不起作用?我没有碰到那些问题,我使用Eclipse来开发频繁输出声音的程序。你能展示一些代码,让我们知道操作系统环境吗? (例如,对于某些类型的Linux,输出声音线上可能存在争用问题。)

此外,在没有看到任何内容的情况下,完全有可能您没有设置错误/异常来告诉您输入是否在jar形式中失败,并且输出存在并且由静默组成。