3

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

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

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

我曾经在 200 毫秒内获得 4 倍值 200,然后一切正常,然后在 200 毫秒内再次获得 5 倍相同的值。由于这种行为,我当前状态的图形可视化会定期停止一小会儿。尽管播放器播放记录罚款。

我尝试使用 progres StopWatch 并以固定值周期性增加,但它比 mediaPlayer currentPosition 快。比我试图增加它更复杂:

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

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

4

0 回答 0