依赖:
implementation 'com.shuyu:GSYVideoPlayer:7.0.1' 权限: <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer android:id="@+id/detail_player" android:layout_width="match_parent" android:layout_height="200dp" />
public class MainActivity extends AppCompatActivity { StandardGSYVideoPlayer videoPlayer; private OrientationUtils orientationUtils; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); videoPlayer = findViewById(R.id.detail_player); init(); } private void init() { String uri = "android.resource://" + getPackageName() + "/" + R.raw.test; String source1 = "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"; String path = Environment.getExternalStorageDirectory().getPath() + "/Pictures/test.mp4"; videoPlayer.setUp(path, true, "测试视频"); //videoPlayer.setUp(uri, true, "测试视频"); //videoPlayer.setUp(source1, true, "测试视频"); //增加封面 ImageView imageView = new ImageView(this); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setImageResource(R.mipmap.ic_launcher); videoPlayer.setThumbImageView(imageView); //增加title videoPlayer.getTitleTextView().setVisibility(View.VISIBLE); //设置返回键 videoPlayer.getBackButton().setVisibility(View.VISIBLE); //设置旋转 orientationUtils = new OrientationUtils(this, videoPlayer); //设置全屏按键功能,这是使用的是选择屏幕,而不是全屏 videoPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // ------- !!!如果不需要旋转屏幕,可以不调用!!!------- // 不需要屏幕旋转,还需要设置 setNeedOrientationUtils(false) //orientationUtils.resolveByClick(); videoPlayer.startWindowFullscreen(MainActivity.this, false, true); } }); //是否可以滑动调整 videoPlayer.setIsTouchWiget(true); //设置返回按键功能 videoPlayer.getBackButton().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); ///不需要屏幕旋转 videoPlayer.startPlayLogic(); } @Override protected void onPause() { super.onPause(); videoPlayer.onVideoPause(); } @Override protected void onResume() { super.onResume(); videoPlayer.onVideoResume(); } @Override protected void onDestroy() { super.onDestroy(); GSYVideoManager.releaseAllVideos(); if (orientationUtils != null) orientationUtils.releaseListener(); } @Override public void onBackPressed() { /// 不需要回归竖屏 // if (orientationUtils.getScreenType() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) { // videoPlayer.getFullscreenButton().performClick(); // return; // } //释放所有 videoPlayer.setVideoAllCallBack(null); super.onBackPressed(); } //调用系统自带的播放器 private void player() { Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath() + "/test.mp4"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(uri, "video/mp4"); startActivity(intent); } // private void videoViewPlayer() { Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath() + "/test.mp4"); VideoView videoView = (VideoView) this.findViewById(R.id.video_view); videoView.setMediaController(new MediaController(this)); videoView.setVideoURI(uri); videoView.start(); videoView.requestFocus(); } }