提交 bff66811 编写于 作者: S shuyu

1.4.6 修正了预览

上级 a5346727
07.gif

1.2 MB

......@@ -16,6 +16,7 @@
* **调整显示比例:默认、16:9、4:3。**
* **调整不同清晰度的支持。**
* **支持IJKPlayer和EXOPlayer切换。**
* **进度条小窗口预览。**
## [简书详解入口](http://www.jianshu.com/p/9fe377dd9750)
......@@ -65,13 +66,25 @@ dependencies {
<img src="https://github.com/CarGuo/GSYVideoPlayer/blob/master/05.gif" width="240px" height="426px"/>
<img src="https://github.com/CarGuo/GSYVideoPlayer/blob/master/04.gif" width="240px" height="426px"/>
* ### 3、进度条小窗口预览
<img src="https://github.com/CarGuo/GSYVideoPlayer/blob/master/07.gif" width="426px" height="240px"/>
## 下方个版本说明,可以当做简单的wiki使用~,效果可参考DEMO。
### 1.4.6
* 修改了某些虚拟按键手机下,全屏后返回导致界面显示不正的问题。
* 增加CustomGSYVideoPlayer,实现滑动进度条预览效果。
注:网目前对已完全缓存的视频,或者本地文件支持好一些,对纯网络视频支持较差。
```
/**
* 是否打开滑动预览,对已缓存文件默认生效
* 如果是本地文件需要设置打开,默认关闭
*/
public void setOpenPreView(boolean localFile)
```
### 1.4.5
* 支持切换IJKPlayer和EXOPlayer,不过EXOPlayer后台播放回到前台黑的问题除了seekto无解啊。
......
......@@ -43,7 +43,7 @@ public class DetailPlayer extends AppCompatActivity {
ButterKnife.bind(this);
String url = "http://baobab.wdjcdn.com/14564977406580.mp4";
detailPlayer.setUp(url, false, null, "测试视频");
detailPlayer.setUp(url, true, null, "测试视频");
//增加封面
ImageView imageView = new ImageView(this);
......@@ -71,9 +71,6 @@ public class DetailPlayer extends AppCompatActivity {
//第一个true是否需要隐藏actionbar,第二个true是否需要隐藏statusbar
detailPlayer.startWindowFullscreen(DetailPlayer.this, true, true);
//这是以前旧的方式
//toDo();
}
});
......
......@@ -124,8 +124,6 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
protected boolean mFirstTouch = false;//是否首次触摸
protected boolean mCacheFile = false; //是否是缓存的文件
/**
* 当前UI
......
......@@ -2,7 +2,6 @@ package com.shuyu.gsyvideoplayer.video;
import android.content.Context;
import android.graphics.SurfaceTexture;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.Surface;
import android.view.TextureView;
......@@ -13,7 +12,6 @@ import android.widget.SeekBar;
import com.shuyu.gsyvideoplayer.GSYPreViewManager;
import com.shuyu.gsyvideoplayer.GSYTextureView;
import com.shuyu.gsyvideoplayer.R;
import com.shuyu.gsyvideoplayer.utils.Debuger;
/**
* Created by shuyu on 2016/12/10.
......@@ -28,6 +26,11 @@ public class CustomGSYVideoPlayer extends StandardGSYVideoPlayer {
//是否因为用户点击
private boolean mIsFromUser;
//是否打开滑动预览
private boolean mOpenPreView;
private int mPreProgress = -2;
public CustomGSYVideoPlayer(Context context) {
super(context);
initView();
......@@ -104,10 +107,11 @@ public class CustomGSYVideoPlayer extends StandardGSYVideoPlayer {
layoutParams.leftMargin = offset;
//设置帧预览图的显示位置
mPreviewLayout.setLayoutParams(layoutParams);
if (GSYPreViewManager.instance().getMediaPlayer() != null && mHadPlay) {
if (GSYPreViewManager.instance().getMediaPlayer() != null && mHadPlay
&& Math.abs(progress - mPreProgress) > 2 && (mCacheFile || mOpenPreView)) {
int time = progress * getDuration() / 100;
Debuger.printfLog("SEEK TO " + time);
GSYPreViewManager.instance().getMediaPlayer().seekTo(time);
mPreProgress = progress;
}
}
}
......@@ -117,10 +121,14 @@ public class CustomGSYVideoPlayer extends StandardGSYVideoPlayer {
super.onStartTrackingTouch(seekBar);
mIsFromUser = true;
mPreviewLayout.setVisibility(VISIBLE);
mPreProgress = -2;
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if (mPreProgress >= 0) {
seekBar.setProgress(mPreProgress);
}
super.onStopTrackingTouch(seekBar);
mIsFromUser = false;
mPreviewLayout.setVisibility(GONE);
......@@ -133,4 +141,24 @@ public class CustomGSYVideoPlayer extends StandardGSYVideoPlayer {
}
super.setTextAndProgress(secProgress);
}
@Override
public GSYBaseVideoPlayer startWindowFullscreen(Context context, boolean actionBar, boolean statusBar) {
GSYBaseVideoPlayer gsyBaseVideoPlayer = super.startWindowFullscreen(context, actionBar, statusBar);
CustomGSYVideoPlayer customGSYVideoPlayer = (CustomGSYVideoPlayer) gsyBaseVideoPlayer;
customGSYVideoPlayer.mOpenPreView = mOpenPreView;
return gsyBaseVideoPlayer;
}
public boolean isOpenPreView() {
return mOpenPreView;
}
/**
* 是否打开滑动预览,对已缓存文件默认生效
* 如果是本地文件需要设置打开,默认关闭
*/
public void setOpenPreView(boolean localFile) {
this.mOpenPreView = localFile;
}
}
......@@ -84,6 +84,8 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
protected boolean mHadPlay = false;//是否播放过
protected boolean mCacheFile = false; //是否是缓存的文件
protected Context mContext;
protected String mOriginUrl; //原来的url
......@@ -305,6 +307,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
resolveFullVideoShow(context, gsyVideoPlayer);
}
gsyVideoPlayer.mHadPlay = mHadPlay;
gsyVideoPlayer.mCacheFile = mCacheFile;
gsyVideoPlayer.mFullPauseBitmap = mFullPauseBitmap;
gsyVideoPlayer.setUp(mUrl, mCache, mCachePath, mMapHeadData, mObjects);
gsyVideoPlayer.setStateAndUi(mCurrentState);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册