java - MediaPlayer 在使用 Handler 时出现滞后

标签 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();

        }
    }

最佳答案

问题已解决。我不得不从 onProgressChanged() 中剥离 startProgressUpdater() 并将其放入 onStopTrackingTouch() 中。

关于java - MediaPlayer 在使用 Handler 时出现滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20774620/

相关文章:

Java,paintComponent中的setForeground融化了CPU

java - 使用MultithreadMapper时出错

java - 未在 JMS listner 非 Activity 类 android 中获取应用程序上下文

c++ - 如果超时已过,如何中止 async()

c# - 在 C# 中使数据集线程安全

java - 按顺序对 DataProvider 中的每个数据集运行一组测试

java - 使用 Order By DateTime 获取 SQLite 数据但不起作用

android - Android Gmail 客户端不支持 Html 行(水平规则)

Android和播放SVG动画

c# - 是否必须提供与C#中的多线程相关的事件的场景?