Android VideoView detailed steps to play video

Encapsulated MediaPlayer

Detailed steps for Android MediaPlayer to play video

1. Add permissions:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />

2. Dynamically add permissions

ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.CAMERA,Manifest.permission.RECORD_AUDIO},
                100);

3. Create a VideoViewActivity and use Intent to connect MainActivity and VideoViewActivity

Full code:

MainActivity layout file activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    
	<Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="播放视频"
        android:onClick="playVideo"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**
         * 在 Android 6.0 以上需要动态添加权限
         */
        ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.CAMERA,Manifest.permission.RECORD_AUDIO},
                100);

    }

    /**
     * 播放视频
     * @param view
     */
    public void playVideo(View view) {
        //跳转到VideoViewActivity完成播放视频
        startActivity(new Intent(this, VideoViewActivity.class));
    }
}

VideoViewActivity.java layout file activity_video_view.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

</androidx.constraintlayout.widget.ConstraintLayout>

VideoViewActivity.java

package com.example.mediademo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.MediaController;
import android.widget.VideoView;
import java.io.File;

public class VideoViewActivity extends AppCompatActivity implements View.OnClickListener{

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

        //获取VideoView
        VideoView videoView = findViewById(R.id.videoView);
        //控制窗口(暂停/播放 快进/快退)
        MediaController mediaController = new MediaController(this);
        //点击next上一曲 prev下一曲
        mediaController.setPrevNextListeners(this, this);
        videoView.setMediaController(mediaController);
        //视频的存放路径
        videoView.setVideoPath(new File(getExternalFilesDir(""), "a.mp4").getAbsolutePath());
        //开始播放
        videoView.start();

    }

    //点击next上一曲 prev下一曲的监听
    @Override
    public void onClick(View view) {
        Log.i("VideoView","====");
    }
}

It is recommended to use the real device test 

Guess you like

Origin blog.csdn.net/weixin_53443677/article/details/126469828