========================================================================================================================
布局:
<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>
主代码:
package com.example.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.MediaController;
import android.widget.VideoView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity 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_main);
// 从布局文件中获取名叫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)
{
// 创建一个内容获取动作的意图(准备跳到系统视频库)
// ACTION_GET_CONTENT只可选择近期的视频
//Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// ACTION_PICK可选择所有视频
Intent intent = new Intent(Intent.ACTION_PICK);
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(); // 视频视图开始播放
}
}
}
}