【发布时间】:2009-12-16 11:53:41
【问题描述】:
我们在 Linux 的 OpenJDK 上使用 JavaZoom 的库播放音频文件时遇到问题,尽管它在 Sun JDK 上运行良好。 this 'Master Gain not supported' 异常是否有任何解决方法?
莫森
【问题讨论】:
我们在 Linux 的 OpenJDK 上使用 JavaZoom 的库播放音频文件时遇到问题,尽管它在 Sun JDK 上运行良好。 this 'Master Gain not supported' 异常是否有任何解决方法?
莫森
【问题讨论】:
我注意到了同样的事情。我只是在尝试更改增益之前检查 Sun Java。糟透了,但从好的方面来说,OpenJDK 的音频性能比 Sun 的要好得多。
编辑:因为其他人会通过网络搜索找到这个答案,所以我要补充一点。在某些情况下,OpenJDK 的 PulseAudioMixer 似乎不遵守 JSAPI。例如,它坚持在刷新()之前停止()一行。然而,JSAPI 明确表示在停止之前刷新是合法的。或者在您提到的情况下,脉冲音频实现声称在您调用 isControlSupported 时支持增益,但无论如何都会引发异常。这是 JavaZoom 代码在 OpenJDK 中无法运行的两个原因。还有其他的。在某些情况下,不应责怪 PulseAudioMixer,它只是在未定义的情况下采用不同的路线(例如,如果您在未打开的行上调用 write() 会发生什么?!)。我正在使我编写的一些代码更健壮,以便在 OpenJDK 上运行。
【讨论】:
有针对libbasicplayer-java的补丁(适用于3.0-4):
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=567856
然而,OpenJDK 在获得支持方面仍然存在缺陷:
【讨论】:
在那一页上:https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/491784/ 最后有一个补丁,它现在对我有用。该补丁仅由 try & catch 组成。 抱歉,我再也找不到 javazoom 的作者在网上放源的地方了。需要的可以联系我。
【讨论】: