1 -->implementation 'com.shuyu:GSYVideoPlayer:2.1.3'
2
<com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer android:layout_width="match_parent" android:id="@+id/video_player" android:layout_height="match_parent"></com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer>
3
package com.cherishTang.laishou.laishou.main.activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import com.cherishTang.laishou.R;
import com.cherishTang.laishou.util.apiUtil.StringUtil;
import com.shuyu.gsyvideoplayer.GSYVideoManager;
import com.shuyu.gsyvideoplayer.model.VideoOptionModel;
import com.shuyu.gsyvideoplayer.utils.OrientationUtils;
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;
import java.util.ArrayList;
import java.util.List;
import tv.danmaku.ijk.media.player.IjkMediaPlayer;
/**
* Created by CherishTang on 2019/3/19.
* describe
*/
public class VideoViewActivity extends AppCompatActivity {
private Bundle bundle;
private String path;
private String title;
StandardGSYVideoPlayer videoPlayer;
OrientationUtils orientationUtils;
String test=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video_view_activity);
bundle = getIntent().getExtras() == null ? new Bundle() : getIntent().getExtras();
path = bundle.getString("path");
title = bundle.getString("title");
if (StringUtil.isEmpty(path)) {
Toast.makeText(this,"播放地址错误",Toast.LENGTH_LONG).show();
return;
}
init();
}
private void init() {
videoPlayer = (StandardGSYVideoPlayer)findViewById(R.id.video_player);
String source1 = path;
videoPlayer.setUp(source1, true, title);
/**
* 12、视频声音画面不同步。
*
* 模拟器的不接!
*
* 1、是否关闭了硬解码!
*
* 2、Activity的config是否配置了!
*
* 3、视频的分辨率和帧数是多少,机器是否支持的了
*
* 第3步可以通过尝试降低倍数:
*/
VideoOptionModel videoOptionModel =
new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 50);
List<VideoOptionModel> list = new ArrayList<>();
list.add(videoOptionModel);
GSYVideoManager.instance().setOptionModelList(list);
//增加封面
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) {
orientationUtils.resolveByClick();
}
});
//是否可以滑动调整
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();
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();
}
}
以上简单视频播放完成
如需详细讲解