2012-06-11 21 views
0

我已经在我的程序(播放/停止,显示进度)上实现了jLayer的简单用法,它工作正常。jLayer 1.0.1 getPosition并不总是返回毫秒

但是我的getPosition()函数返回一个问题,它在我的Windows XP机器上(如文档中)返回ms值,但是在我的Ubuntu机器上的SECONDS中。

有没有人有一个想法,为什么这样的区别?

回答

0

看看源代码!我认为你正在谈论的是玩家类。

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

除了更新JRE和OS外,没有太多可以做。如果这没有帮助,你只能提交一个错误报告。

编辑:有了bug报告,我的意思是虚拟机的供应商,因为JLayer家伙无法对JRE返回虚假值做任何事情。