【问题标题】:SeekBar and TextView stop updating randomlySeekBar 和 TextView 停止随机更新
【发布时间】:2014-08-14 22:31:21
【问题描述】:

我是 Android 编程新手,所以我可能犯了一个简单的错误。我已经实现了一个带有相应 SeekBar 和 TextView(倒计时)的 MediaPlayer。大约一半时间,SeekBar 和 TextView 在播放期间停止更新。我正在播放的音频文件很短,最长为 60 秒....在这种特殊情况下,我的文件长度为 10-15 秒。

对应的更新函数如下:

    private static MediaPlayer             mMediaPlayer;
    private static SeekBar                 mSeekBar;
    private static TextView                mClock;
    private static Handler                 mHandler = new Handler();
    .
    .
    .
    private void startPlayProgressUpdater() {
        if(mMediaPlayer != null && mMediaPlayer.isPlaying()) {
            final String s = OyoUtils.constructMinSec(mMediaPlayer.getDuration() - mMediaPlayer.getCurrentPosition());
            Log.e("",s + " " + mMediaPlayer.getCurrentPosition());
            mSeekBar.setProgress(mMediaPlayer.getCurrentPosition());
            mClock.setText(s);

            Runnable update = new Runnable() {
                public void run() {
                    startPlayProgressUpdater();
                }
            };
            mHandler.postDelayed(update, 200);
        } else {
            Log.e("","Not playing");
        }
    }

日志确实确认smMediaPlayer.getCurrentPosition() 的值是它们应有的值,并且即使在SeekBar 和TextView 停止更新后也继续使用新的和正确的值进行更新。日志示例如下所示:0:11 4650

SeekBar 和 TextView 总是一起停止更新,从来没有出现过一个继续更新另一个不更新的情况。

如果我在 SeekBar 和 TextView 停止更新后暂停播放,然后开始播放,SeekBar 和 TextView 会跳转到正确的位置/值。

当这些值停止更新时,LogCat 中没有错误。我的代码中没有其他地方可以打开新线程、重新启动 mHandler 或使用任何 Runnables。

有什么想法吗?

【问题讨论】:

    标签: java android handler android-mediaplayer runnable


    【解决方案1】:

    如果 startPlayProgressUpdater() 未在 UI 线程上运行,则可能会发生这种情况。尝试像这样初始化您的 mHandler:

    私有静态处理程序 mHandler = new Handler(Looper.getMainLooper());

    这样,在 Runnable 的 run() 中创建的所有内容都将在 UI 线程上运行。您还可以将视图用作处理程序,并且 Runnable 也将在 UI 线程上运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 2015-03-02
      • 1970-01-01
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多