我发布了一个问题的修复(如下所述),但无法确认它是否解决了问题。使用 Java 7 的人会尝试以下 Applet 并报告吗?非常感谢。
向我报告的问题是顶行需要从压缩资源加载声音剪辑的按钮不起作用。错误指向正在读取音频文件的行,并表示正在抛出“标记/重置”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/