java - 在 getAudioInputStream() 期间标记/重置异常

标签 java audio java-7 javasound

我发布了一个问题的修复(如下所述),但无法确认它是否解决了问题。使用 Java 7 的人会尝试以下 Applet 并报告吗?非常感谢。

AudioMixerDemo

向我报告的问题是顶行需要从压缩资源加载声音剪辑的按钮不起作用。错误指向正在读取音频文件的行,并表示正在抛出“标记/重置”I/O 异常。

此代码适用于 Java 6 但不适用于 Java 7。违规声明如下:

AudioInputStream ais = AudioSystem.getAudioInputStream(
    AudioMixer.class.getResourceAsStream(fileName));

内部区域返回一个InputStream,我认为这就是“可标记性”问题出现的地方。在 Oracle's bug database as a backwards compatibility problem 报告了该问题, 但优先级较低。

我已经将上面的代码重新编码如下:

URL url = AudioMixer.class.getResource(fileName);
AudioInputStream ais =  AudioSystem.getAudioInputStream(url); 

AudioSystem API 中没有任何内容提到此方法将抛出“标记/重置”I/O 异常。所以,我充满希望。但我无法证实这一点!

最佳答案

报告该问题的 Java 7 用户已与我联系并竖起大拇指。所以我假设向后兼容性问题的诊断和修复是正确的,并且不再寻求测试人员(除非你只是对检查 AudioMixer 感兴趣)。

关于java - 在 getAudioInputStream() 期间标记/重置异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8091967/

相关文章:

Java 数据库连接。尝试通过sql登录jframe获取逻辑错误

Java字节数组和DataOutputStream处理

android - Phonegap Build App-播放音频

hadoop - 为什么hadoop总是在寻找java-6-sun

java - 如何避免Google App Engine不支持Runtime.addShutdownHook

java - 将文本文件读取到数组 Java

java - 我想在当前目录中运行 scons 命令。我如何在 Java 中执行此操作?

javascript - 在 React 中管理多个音频源

c# - 当listView中的dateTime == dateTime.Now时播放声音

java - Java 7 中对象静态方法的原因