Android 为什么对于.ogg格式的媒体播放器getCurrentPosition()每秒只更新一次,而对于mp3格式的媒体播放器getCurrentPosition()每秒更新一次

Android 为什么对于.ogg格式的媒体播放器getCurrentPosition()每秒只更新一次,而对于mp3格式的媒体播放器getCurrentPosition()每秒更新一次,android,mp3,media-player,ogg,Android,Mp3,Media Player,Ogg,我正在使用媒体播放器,我需要每隔50毫秒查询一次当前位置,但是,如果我播放.ogg格式,则getCurrentPosition似乎每秒只更新一次左右。以下是日志摘录: 05-16 13:29:28.551 9275-9275/com.some.app D/highlight﹕ Current position is: 0 05-16 13:29:28.603 9275-9275/com.some.app D/highlight﹕ Current position is: 1014 0

我正在使用媒体播放器,我需要每隔50毫秒查询一次当前位置,但是,如果我播放
.ogg
格式,则
getCurrentPosition
似乎每秒只更新一次左右。以下是日志摘录:

05-16 13:29:28.551    9275-9275/com.some.app D/highlight﹕ Current position is: 0
05-16 13:29:28.603    9275-9275/com.some.app D/highlight﹕ Current position is: 1014
05-16 13:29:28.651    9275-9275/com.some.app D/highlight﹕ Current position is: 1014
05-16 13:29:28.703    9275-9275/com.some.app D/highlight﹕ Current position is: 1014
...
05-16 13:29:29.343    9275-9275/com.some.app D/highlight﹕ Current position is: 1014
05-16 13:29:29.391    9275-9275/com.some.app D/highlight﹕ Current position is: 1014
05-16 13:29:29.443    9275-9275/com.some.app D/highlight﹕ Current position is: 1014
05-16 13:29:29.491    9275-9275/com.some.app D/highlight﹕ Current position is: 1014
05-16 13:29:29.543    9275-9275/com.some.app D/highlight﹕ Current position is: 2033
05-16 13:29:29.595    9275-9275/com.some.app D/highlight﹕ Current position is: 2033
05-16 13:29:29.643    9275-9275/com.some.app D/highlight﹕ Current position is: 2033
...
05-16 13:29:30.555    9275-9275/com.some.app D/highlight﹕ Current position is: 3037
05-16 13:29:30.623    9275-9275/com.some.app D/highlight﹕ Current position 
但是,当我使用
.mp3
格式时,位置大约每20毫秒更新一次,这对我很有用:

05-17 05:45:04.459    5132-5144/com.some.app D/highlight 104
05-17 05:45:04.475    5132-5144/com.some.app D/highlight 104
05-17 05:45:04.479    5132-5144/com.some.app D/highlight 104
05-17 05:45:04.491    5132-5144/com.some.app D/highlight 131
05-17 05:45:04.499    5132-5144/com.some.app D/highlight 131
05-17 05:45:04.511    5132-5144/com.some.app D/highlight 131
05-17 05:45:04.519    5132-5144/com.some.app D/highlight 157
05-17 05:45:04.535    5132-5144/com.some.app D/highlight 157
05-17 05:45:04.539    5132-5144/com.some.app D/highlight 157
05-17 05:45:04.555    5132-5144/com.some.app D/highlight 157
05-17 05:45:04.559    5132-5144/com.some.app D/highlight 183
05-17 05:45:04.575    5132-5144/com.some.app D/highlight 183
05-17 05:45:04.579    5132-5144/com.some.app D/highlight 183
05-17 05:45:04.595    5132-5144/com.some.app D/highlight 183

我现在打算使用
mp3
,但我想知道为什么会有不同,如果我需要使用
.ogg
我怎么才能获得相同的udpate率?

我感觉这与缓冲区在较低级别上被刷新有关。如果您正在播放音频,可以尝试@pathfinderelite,谢谢,我播放
.ogg
格式。音频曲目仅支持PCM,因此在播放之前,我需要将
.ogg
转换为
PCM
。那是额外的工作。但如果没有人提出更好的建议,那也许这是唯一的办法solution@pathfinderelite,我已经找到了问题的原因,请参阅我的更新,但是现在出现了不同的问题。我不知道为什么行为会有差异。不过,这也可能因Android操作系统版本而异,因此我会非常小心地避免依赖频繁的位置更新。@commonware,谢谢!我正在尝试实现中描述的功能,因此我需要每50毫秒更新一次时间。您是否认为保持自己的
currentPosition
变量,在播放开始时将其设置为媒体播放器的当前位置,然后在我的looper代码中更新它是一种更好、可行的方法?