关于SeekBar进度条实时更新视频进度

首先我们需要实例化一个子线程,能后实时的更新SeekBar的进度方法如下:

首先在Actvity里面 实例化一个子线程

  //视频进度条更新
    class VideoThreed extends Thread {
        public void run() {

            while (!Thread.currentThread().isInterrupted()) {
//  正在播放的时间和 总时长
                if (mediaPlayer.getCurrentPosition() ==  mediaPlayer。getp=Position) {
                    return;
                }
    
                Message message = new Message();
                message.what = PROGRESS_CHANGED;
                myHandler.sendMessage(message);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt();
                }
            }
        }

    }

然后我们需要起一个handler来实时的更新UI:

//更新UI
Handler myHandler = new Handler()
{
    public void handleMessage(Message msg)
    {
        switch (msg.what)
        {
            case PROGRESS_CHANGED:
               // 实时更新UI进度
                    sb_bar.setProgress(mediaPlayer.getCurrentPosition());
        
                break;
        }
    }
};

最后在我们需要播放的地方实例化VideoThreed

VideoThreed videoThreed= new VideoThreed();
videoThreed.start();

这样我们SeekBar就可以实时的更新视频进度,当然我这个是视频没有进度条要这样做的,其实大部分有进度条的可以直接拿过来用。这个只是提供给视频不带进度条的人使用

你可能感兴趣的:(日志,技术贴)