我在我的程序中实现了jLayer的简单用法(播放/停止,显示进度),效果很好。
但是我遇到了getPosition()的问题,它在我的Windows XP机器上以ms为单位返回值(如文档所述),但是在我的Ubuntu机器上的SECONDS中。
有没有人知道为什么会有这样的差异?
答案 0 :(得分:0)
看看源代码!我认为你正在与Player类进行对话。
它的getPosition()直接调用AudioDevice.getPosition(),JavaAudioDevice实现返回SourceDataLine.getMicroSecondPostion()/ 1000.后一个类是部分或JRE,所以我假设特定的JRE版本被窃听或者操作系统不提供更高的分辨率。可能也是导致此问题的硬件平台的特定音频驱动程序。
除了更新JRE和OS之外,您无能为力。如果这没有帮助,您只能提交错误报告。
编辑:有bug报告我的意思是VM的供应商,因为JLayer的人不能对JRE返回虚假值做任何事情。