【问题标题】:Android: Progress update SeekrBarAndroid:进度更新 SeekrBar
【发布时间】:2011-08-29 08:44:30
【问题描述】:

我有一个媒体播放器的搜索栏,我已经实现如下。

    //SeekBar setup     
    progress = (SeekBar)findViewById(R.id.seekBarPlayer);
    progress.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            if (fromUser) {
                mediaPlayer.seekTo(progress);
                Log.v(TAG,progress +"Seeking...");
            }

        }
    });

    //seekbar initiated after mediaplayer initiated
    total = mediaPlayer.getDuration();
    progress.setMax(total);

但我的问题是 seekBar 在音乐播放时没有运行。它在一个地方闲置,如果我寻找,那么音乐就会寻找,但它不会随着音乐运行或前进。谁能告诉我我错过了什么。

提前感谢您的宝贵时间。

【问题讨论】:

标签: android progress-bar seekbar


【解决方案1】:

线程太重了。这是我使用的精简版。

在你的活动中声明一个处理程序

private boolean isPaused;
Handler handler = new Handler();

声明一个可运行的

    Runnable onEverySecond = new Runnable() {   

    @Override
    public void run() {
        if(!isPaused){
            progress.setProgress(player.getCurrentPosition());              

            handler.postDelayed(onEverySecond, EVERY_SECOND);
        }
    }
};

在你的简历中

@Override
protected void onResume() {
    isPaused = false;
    handler.postDelayed(onEverySecond, EVERY_SECOND);
}

在你的暂停中

@Override
protected void onPause() {  
    isPaused = true;
    handler.removeCallbacks(onEverySecond);
}

【讨论】:

    【解决方案2】:

    这是因为您在运行媒体播放器的同一线程中更新了进度条。在 UI(或其他)线程中更新你的进度条。看看这个android: how do I use the progress bar?。谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      相关资源
      最近更新 更多