0

我在我的程序(播放/停止,显示进度)上实现了 jLayer 的简单用法,效果很好。

但是,我遇到了 getPosition() 的问题,它在我的 Windows XP 机器上以 ms 为单位返回值(如文档所述),但在我的 Ubuntu 机器上以 SECONDS 为单位。

有谁知道为什么会有这样的差异?

4

1 回答 1

0

看看源代码吧!我想你说的是 Player 类。

它的 getPosition() 直接调用 AudioDevice.getPosition(),而 JavaAudioDevice 实现返回 SourceDataLine.getMicroSecondPostion() / 1000。后一个类是 JRE 的一部分,所以我假设特定的 JRE 版本有问题或操作系统有问题不提供更高的分辨率。也可能是导致此问题的硬件平台的特定音频驱动程序。

除了更新 JRE 和操作系统之外,您无能为力。如果这没有帮助,您只能提交错误报告。

编辑:对于错误报告,我指的是 VM 的供应商,因为 JLayer 的家伙对 JRE 返回的虚假值无能为力。

于 2012-06-11T16:42:07.390 回答