MediaPlayer在使用Handler时滞后

时间:2013-12-25 16:09:42

标签: java android multithreading

在我的Android应用中,我使用MediaPlayer和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();

        }
    }

1 个答案:

答案 0 :(得分:1)

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