Mediaplayer.getCurrentPosition возвращает 0 во время игры - PullRequest
0 голосов
/ 07 апреля 2019

Когда запускается медиаплеер, музыка воспроизводится, но текущая позиция некоторое время возвращает 0 (около 200 мс).Я хочу показать текущую позицию в интерфейсе пользователя во время воспроизведения музыки.Я пытался написать хорошее состояние, но if(mediaPlayer.isPlaying()) недостаточно.

mediaPlayer.start();
    future=service.scheduleAtFixedRate(new Runnable() {
        public void run() {
            try{
                if(mediaPlayer.isPlaying())
                {
                    startTime = System.currentTimeMillis();
                    curPosition = mediaPlayer.getCurrentPosition();
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            //to do part
                            setTimeText();
                        }
                    });

                    Log.d("mydebug","cur:"+curPosition);

                    delay = (System.currentTimeMillis() - startTime);

                    nextThread = millPerFrame - delay;
                    if (nextThread<0)
                        nextThread=0;
                }
            }
            catch (Exception e)
            {
                Log.w("mydebug",e.getMessage());
            }
        }
    }, 0, nextThread, TimeUnit.MILLISECONDS);

Я называю этот шаг каждые 40 мс.первый 7 поток curPosition возвращает 0. Это в 6 раз больше, чем ожидалось.Ниже вы можете увидеть мои результаты Logcat;

04-07 15:40:23.984 5349-6947/com.example.user.project mydebug: cur:0.0
04-07 15:40:24.022 5349-6947/com.example.user.project mydebug: cur:0.0
04-07 15:40:24.063 5349-6947/com.example.user.project mydebug: cur:0.0
04-07 15:40:24.104 5349-6947/com.example.user.project mydebug: cur:0.0
04-07 15:40:24.145 5349-6947/com.example.user.project mydebug: cur:0.0
04-07 15:40:24.186 5349-6947/com.example.user.project mydebug: cur:0.0
04-07 15:40:24.227 5349-6947/com.example.user.project mydebug: cur:0.0
04-07 15:40:24.272 5349-6947/com.example.user.project mydebug: cur:183.0
04-07 15:40:24.309 5349-6947/com.example.user.project mydebug: cur:183.0
04-07 15:40:24.350 5349-6947/com.example.user.project mydebug: cur:220.0
04-07 15:40:24.391 5349-6947/com.example.user.project mydebug: cur:261.0
04-07 15:40:24.432 5349-6947/com.example.user.project mydebug: cur:302.0
...