Android MediaPlayer.getCurrentPosition定期间隔不规则增加

时间:2012-12-04 12:59:51

标签: android media-player

我对MediaPlayer.getCurrentPosition函数非常不满。我有自己的圆形图形控制面板(360°== 100%)。每个时间间隔我都使用getCurrentPosition进行当前状态计数。在samsugn g3上它无法使用

假设我每50毫秒取值一次。有一些周期性我得到的值大致是:

0,50,100,150,200,200,200,200,250,300,350,400,450,450,450,.....

我习惯在200ms 4x值200期间获得,然后它在200ms 5x期间再次正常,相同的值。由于这种行为,我对当前状态的图形可视化会定期停止一会儿。尽管球员打得很好。

我尝试使用progres StopWatch并使用修复值进行peridically增加,但它比mediaPlayer currentPosition更快。比我试图增加它的复杂性:

        int realPlayerPos = mediaPlayer.GetCurrentPosition();
        if (realPlayerPos > recCurPos)
        {
            ratio += 1; 
            recCurPos = (int) (recCurPos +timeTact + ratio);                
        }
        else
        {
            ratio -= 1;
            recCurPos = (int) (recCurPos +timeTact + ratio);                    
        }

但可以看出,它有时流速更快,有时更慢。我不知道如何为我的图形组件获得可靠的价值。

0 个答案:

没有答案