一、利用视频视图VideoView播放视频
通过专门的播放器固然能够播放视频,但要离开当前App跳到播放界面才行,因为视频播放不算很复杂的功能,人们更希望将视频内嵌到当前App页面,所以Android提供了名为视频视图VideoView的播放控件,该控件允许像视图那样划出一块界面展示视频,同时还支持对视频进行播放控制
常用方法说明如下
1:setVideoURI 设置视频文件的URI路径
2:setVideoPath 设置视频文件的字符串路径
3:setMediaController 设置媒体控制条的对象
4:start 开始播放视频
5:pause 暂停
6:resume 恢复播放
7:suspend 结束播放并释放资源
由于VideoView只显示播放界面,没显示控制按钮和进度条,因此实际开发中需要给它配备媒体控制条MediaController,该控制条支持基本的播放控制操作
MediaController常用方法如下
1:setMediaPlayer 设置媒体播放器的对象
2:show 显示媒体控制条
3:hide 隐藏媒体控制条
4:inShowing 判断媒体控制条是否正在显示
两者具体集成步骤为以下四步
1:由视频视图对象调用setVideoURI方法指定视频文件
2:创建一个媒体控制条
3:由控制条对象调用setMediaPlayer方法
4:调用视频视图对象的start方法 开始播放视频
效果如下
连接真机测试效果更好 模拟机不方便使用相机
代码如下
Java类
package com.example.chapter13;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.MediaController;
import android.widget.VideoView;
import androidx.appcompat.app.AppCompatActivity;
public class VideoPlayActivity extends AppCompatActivity implements View.OnClickListener {
private final static String TAG = "VideoPlayActivity";
private VideoView vv_content; // 声明一个视频视图对象
private int CHOOSE_CODE = 3; // 只在视频库挑选图片的请求码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_play);
// 从布局文件中获取名叫vv_content的视频视图
vv_content = findViewById(R.id.vv_content);
findViewById(R.id.btn_choose).setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn_choose) {
// 创建一个内容获取动作的意图(准备跳到系统视频库)
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("video/*"); // 类型为视频
startActivityForResult(intent, CHOOSE_CODE); // 打开系统视频库
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == RESULT_OK && requestCode == CHOOSE_CODE) {
if (intent.getData() != null) { // 从视频库回来
vv_content.setVideoURI(intent.getData()); // 设置视频视图的视频路径
MediaController mc = new MediaController(this); // 创建一个媒体控制条
vv_content.setMediaController(mc); // 给视频视图设置相关联的媒体控制条
mc.setMediaPlayer(vv_content); // 给媒体控制条设置相关联的视频视图
vv_content.start(); // 视频视图开始播放
}
}
}
}
XML文件如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btn_choose"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="打开相册播放视频"
android:textColor="@color/black"
android:textSize="17sp" />
<VideoView
android:id="@+id/vv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
创作不易 觉得有帮助请点赞关注收藏~~~