Java MediaPlayer在使用处理程序时滞后

Java MediaPlayer在使用处理程序时滞后,java,android,multithreading,Java,Android,Multithreading,在我的Android应用程序中,我使用MediaPlayer和SeekBar。我想在有东西播放时自动更新seekbar。我有这个代码,但它每1秒延迟一次。我怀疑它应该在另一个线程中运行,但我不知道如何编写它。提前谢谢 private void startPlayProgressUpdater() { seekBar.setProgress(mediaPlayer.getCurrentPosition()); if (mediaPlayer.isPlaying()) {

在我的Android应用程序中,我使用MediaPlayer和SeekBar。我想在有东西播放时自动更新seekbar。我有这个代码,但它每1秒延迟一次。我怀疑它应该在另一个线程中运行,但我不知道如何编写它。提前谢谢

private void startPlayProgressUpdater() {
    seekBar.setProgress(mediaPlayer.getCurrentPosition());

    if (mediaPlayer.isPlaying()) {
        Runnable notification = new Runnable() {
            public void run() {

                startPlayProgressUpdater();
            }
        };

        handler.postDelayed(notification, 1000);
    } else {

        mediaPlayer.pause();

        }
    }

问题解决了。我不得不从onProgressChanged()中删除startProgressUpdater(),并将其放入onStopTrackingTouch()。

这似乎是seekBar的问题,它会导致延迟。我试着向mediaPlayer.getCurrentPosition()敬酒,但没有任何延迟。有什么建议吗?你是怎么解决的?我也有同样的问题。