0
点赞
收藏
分享

微信扫一扫

Android VideoView播放进度条

Android VideoView播放进度条实现流程

为了实现Android VideoView的播放进度条,我们需要按照以下步骤进行操作:

步骤 操作
1 在布局文件中添加VideoView和SeekBar控件
2 在Activity中找到并初始化VideoView和SeekBar控件
3 设置VideoView的路径和准备监听
4 设置SeekBar的最大值和进度改变监听
5 在进度改变监听中更新SeekBar的当前进度

现在,让我们逐步完成这些步骤。

步骤1:在布局文件中添加VideoView和SeekBar控件

首先,在你的布局文件中添加一个VideoView控件和一个SeekBar控件。你可以使用以下代码示例:

<LinearLayout xmlns:android="
    xmlns:tools="
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <VideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <SeekBar
        android:id="@+id/seekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progress="0" />

</LinearLayout>

步骤2:在Activity中找到并初始化VideoView和SeekBar控件

接下来,在你的Activity中找到并初始化VideoView和SeekBar控件。在onCreate方法中添加以下代码:

private VideoView videoView;
private SeekBar seekBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    videoView = findViewById(R.id.videoView);
    seekBar = findViewById(R.id.seekBar);
}

步骤3:设置VideoView的路径和准备监听

然后,设置VideoView的路径和准备监听,以便在视频准备好播放时更新SeekBar的最大值。在onCreate方法中添加以下代码:

videoView.setVideoPath("your_video_path");

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        seekBar.setMax(videoView.getDuration());
    }
});

将"your_video_path"替换为你的视频文件路径。

步骤4:设置SeekBar的最大值和进度改变监听

接下来,设置SeekBar的最大值和进度改变监听。在onCreate方法中添加以下代码:

seekBar.setMax(videoView.getDuration());

seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        if (fromUser) {
            videoView.seekTo(progress);
        }
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        // 不需要实现
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // 不需要实现
    }
});

步骤5:在进度改变监听中更新SeekBar的当前进度

最后,在进度改变监听中更新SeekBar的当前进度。在Activity中添加以下代码:

private Handler handler = new Handler();

private Runnable runnable = new Runnable() {
    @Override
    public void run() {
        seekBar.setProgress(videoView.getCurrentPosition());
        handler.postDelayed(runnable, 1000); // 每隔1秒更新一次进度
    }
};

@Override
protected void onResume() {
    super.onResume();
    handler.postDelayed(runnable, 1000); // 在Activity恢复时开始更新进度
}

@Override
protected void onPause() {
    super.onPause();
    handler.removeCallbacks(runnable); // 在Activity暂停时停止更新进度
}

这些代码将每隔1秒钟更新一次SeekBar的当前进度。

至此,你已经完成了Android VideoView播放进度条的实现。希望这篇文章对你有所帮助!

举报

相关推荐

0 条评论