======================
com.shuyu
gsyVideoPlayer
1.1.0
pom
* compile 'com.shuyu:gsyVideoPlayer:1.1.0'
* 支持基本的拖动,声音、亮度调节
*
* 支持视频本身自带rotation的旋转
* 增加了重力旋转与手动旋转的同步支持
* 支持列表播放
* 直接添加控件为封面
* 兼容一些5.0的过场效果
## 效果,录屏下的屏幕旋转和实际有些出入
* 1、打开一个播放
* 2、列表
* 3、详情模式
## GSYVideoPlayer 播放器控件,抽象类,继承后可以直接使用,参考 StandardGSYVideoPlayer
## 记得调用销毁
```
@Override
protected void onDestroy() {
super.onDestroy();
GSYVideoPlayer.releaseAllVideos();
}
```
## StandardGSYVideoPlayer 标准的播放播放器,可参考demo中的playActivity
```
设置播放url,第二个参数表示需要边播边缓存
videoPlayer.setUp(url, true, "");
//增加封面
ImageView imageView = new ImageView(this);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageResource(R.mipmap.xxx1);
videoPlayer.setThumbImageView(imageView);
//增加title
videoPlayer.getTitleTextView().setVisibility(View.VISIBLE);
videoPlayer.getTitleTextView().setText("测试视频");
//设置返回键
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.getBackButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
//在列表中使用的接口,详情请看Demo中的ListVideoActivity
/**
* 利用window层播放全屏效果
*
* @param context
* @param actionBar 是否有actionBar,有的话需要隐藏
* @param statusBar 是否有状态bar,有的话需要隐藏
*/
public void startWindowFullscreen(final Context context, final boolean actionBar, final boolean statusBar)
/**
* 退出window层播放全屏效果
*/
public void clearFullscreenLayout()
还有用于onBackPressed()的
/**
* 退出全屏
*
*/
public static boolean backFromWindowFull(Context context)
@Override
public void onBackPressed() {
if (StandardGSYVideoPlayer.backFromWindowFull(this)) {
return;
}
super.onBackPressed();
}
```
## OrientationUtils 重力旋转的工具类
```
//设置旋转
OrientationUtils orientationUtils = new OrientationUtils(Activity, videoPlayer);
```
## ListVideoUtil 列表模式支持支持滑出屏幕继续播放和全屏的工具类
与上面的StandardGSYVideoPlayer实现列表播放和全屏播放不大一样,ListVideoUtil只有一个StandardGSYVideoPlayer,使用外部container来是先全屏
列表滑动不会影响到播放,具体可以查看demo里的ListVideoActivity和ListVideo2Activity.
```
listVideoUtil = new ListVideoUtil(Activity);
设置需要全屏显示的父类
listVideoUtil.setFullViewContainer(videoFullContainer);
.....
//对列表进行处理,传入每个item的位置,封面,TAG(如果有多个不同列表,用不同TAG区分),视频列表item的父容器,播放按键
/**
* 动态添加视频播放
*
* @param position 位置
* @param imgView 封面
* @param tag TAG类型
* @param container player的容器
* @param playBtn 播放按键
*/
public void addVideoPlayer(final int position, View imgView, String tag,
ViewGroup container, View playBtn)
holder.playerBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
notifyDataSetChanged();
//设置播放的位置和TAG
listVideoUtil.setPlayPositionAndTag(position, TAG);
final String url = "http://baobab.wdjcdn.com/14564977406580.mp4";
//开始播放
listVideoUtil.startPlay(url);
}
});
```
### 混淆
```
-keep class tv.danmaku.ijk.** { *; }
-dontwarn tv.danmaku.ijk.**
```
* //TODO 优化全屏的动画和全屏的效果
* //TODO 优化接入的效果