diff --git a/README.md b/README.md
index ee82af119e51b85892f43a709ac1536c05fb87b5..018e42c87caec4cdbfc49332e713cb73c87f9b04 100644
--- a/README.md
+++ b/README.md
@@ -17,13 +17,13 @@
com.shuyu
gsyVideoPlayer
- 1.2.7
+ 1.2.8
pom
```
```
-compile 'com.shuyu:gsyVideoPlayer:1.2.7'
+compile 'com.shuyu:gsyVideoPlayer:1.2.8'
```
## 效果,录屏下的屏幕旋转和实际有些出入
@@ -43,6 +43,13 @@ compile 'com.shuyu:gsyVideoPlayer:1.2.7'
*
3、详情模式
+### 1.2.8 增加了改变播放速度的方法,0 - 2左右的速度,但只支持6.0以上(= =),升级IJKPlayer到0.7.5。
+```
+/**
+ * 播放速度
+ */
+public void setSpeed(float speed)
+```
### 1.2.7 修改了循环播放的时候,重新播放不弹出控制UI;修改了FragmentActivity的actionBar问题
diff --git a/dependencies.gradle b/dependencies.gradle
index f8d6cebfcbc3a341b14059e7253cd6e6fa7c9cd4..a7c20da468cec7d8dfe7c4caf147a1f1c84bbe77 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -16,7 +16,7 @@ ext {
//ViewLibraries
butterKnifeVersion = '8.2.1'
- ijkplayer = '0.7.4'
+ ijkplayer = '0.7.5'
transitionseverywhere = '1.7.0'
diff --git a/gradle.properties b/gradle.properties
index 0751c392cd253cf53703ebbd64a75630715afdf7..13ca9853b8674ef681bc15a1b75467ad24b0ce3e 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -18,7 +18,7 @@ org.gradle.jvmargs=-Xmx1536m
BINTRAY_USER=
BINTRAY_KEY=
PROJ_GROUP=com.shuyu
-PROJ_VERSION=1.2.7
+PROJ_VERSION=1.2.8
PROJ_NAME=gsyVideo
PROJ_WEBSITEURL=hhttps://github.com/CarGuo/GSYVideoPlayer
PROJ_ISSUETRACKERURL=
diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
index d55bb1a4f913e5d4ba1ca9d3f21f4af2a0a499a8..5c1ff4053283b75ad9f43727ab7e375a421b5e30 100644
--- a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
+++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
@@ -140,6 +140,9 @@ public class GSYVideoManager implements IMediaPlayer.OnPreparedListener, IMediaP
mediaPlayer.setOnErrorListener(GSYVideoManager.this);
mediaPlayer.setOnInfoListener(GSYVideoManager.this);
mediaPlayer.setOnVideoSizeChangedListener(GSYVideoManager.this);
+ if (((GSYModel) msg.obj).getSpeed() != 1 && ((GSYModel) msg.obj).getSpeed() > 0) {
+ mediaPlayer.setSpeed(((GSYModel) msg.obj).getSpeed());
+ }
mediaPlayer.prepareAsync();
} catch (Exception e) {
e.printStackTrace();
@@ -166,11 +169,11 @@ public class GSYVideoManager implements IMediaPlayer.OnPreparedListener, IMediaP
}
- public void prepare(final String url, final Map mapHeadData, boolean loop) {
+ public void prepare(final String url, final Map mapHeadData, boolean loop, float speed) {
if (TextUtils.isEmpty(url)) return;
Message msg = new Message();
msg.what = HANDLER_PREPARE;
- GSYModel fb = new GSYModel(url, mapHeadData, loop);
+ GSYModel fb = new GSYModel(url, mapHeadData, loop, speed);
msg.obj = fb;
mMediaHandler.sendMessage(msg);
}
diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
index 497e753435e9fc75d8a134ab1795f52165bd6aba..f0fb9ed4b120953ff11f186d58b684451983dd89 100644
--- a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
+++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
@@ -339,7 +339,7 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
mAudioManager.requestAudioFocus(onAudioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
((Activity) getContext()).getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- GSYVideoManager.instance().prepare(mUrl, mMapHeadData, mLooping);
+ GSYVideoManager.instance().prepare(mUrl, mMapHeadData, mLooping, mSpeed);
setStateAndUi(CURRENT_STATE_PREPAREING);
}
diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/model/GSYModel.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/model/GSYModel.java
index 3d055316715d9fad367338319513dc6df6fd893a..24ad594db9e73122f84f90a5fa4b9fb5e3a4c98e 100644
--- a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/model/GSYModel.java
+++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/model/GSYModel.java
@@ -11,12 +11,16 @@ public class GSYModel {
String url;
Map mapHeadData;
+
+ float speed = 1;
+
boolean looping;
- public GSYModel(String url, Map mapHeadData, boolean loop) {
+ public GSYModel(String url, Map mapHeadData, boolean loop, float speed) {
this.url = url;
this.mapHeadData = mapHeadData;
this.looping = loop;
+ this.speed = speed;
}
public String getUrl() {
@@ -42,4 +46,12 @@ public class GSYModel {
public void setLooping(boolean looping) {
this.looping = looping;
}
+
+ public float getSpeed() {
+ return speed;
+ }
+
+ public void setSpeed(float speed) {
+ this.speed = speed;
+ }
}
diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java
index 29ea04af8e21e8896dc90cdaf0b05bd88c792a99..0706fe552d8b15a3f0ccde7d5aed72664f431bbc 100644
--- a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java
+++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java
@@ -39,6 +39,7 @@ public class ListVideoUtil {
private Context context;
private int playPosition = -1; // 播放的位置
+ private int speed = 1; // 播放速度,仅支持6.0
private boolean isFull; //当前是否全屏
private boolean isSmall; //当前是否小屏
private boolean hideStatusBar; //是否隐藏有状态bar
@@ -117,6 +118,8 @@ public class ListVideoUtil {
gsyVideoPlayer.setLooping(isLoop);
+ gsyVideoPlayer.setSpeed(speed);
+
gsyVideoPlayer.setUp(url, true, "");
//增加title
@@ -515,6 +518,18 @@ public class ListVideoUtil {
return gsyVideoPlayer.getDuration();
}
+
+ public int getSpeed() {
+ return speed;
+ }
+
+ /**
+ * 播放速度,仅支持6.0
+ */
+ public void setSpeed(int speed) {
+ this.speed = speed;
+ }
+
/**
* 获取当前播放进度
*/
diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/GSYBaseVideoPlayer.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/GSYBaseVideoPlayer.java
index 12d8b45cc932f8094d32d7b29814c8bca894b073..dd0ae2e32cf162c9620579e89809d7d06961d333 100644
--- a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/GSYBaseVideoPlayer.java
+++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/GSYBaseVideoPlayer.java
@@ -59,6 +59,8 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
protected int mCurrentState = -1; //当前的播放状态
+ protected float mSpeed = 1;//播放速度,只支持6.0以上
+
protected boolean mRotateViewAuto = true; //是否自动旋转
protected boolean mIfCurrentIsFullscreen = false;//当前是否全屏
@@ -229,6 +231,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
gsyVideoPlayer.setIfCurrentIsFullscreen(true);
gsyVideoPlayer.setVideoAllCallBack(mVideoAllCallBack);
gsyVideoPlayer.setLooping(isLooping());
+ gsyVideoPlayer.setSpeed(getSpeed());
final FrameLayout.LayoutParams lpParent = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
final FrameLayout frameLayout = new FrameLayout(context);
frameLayout.setBackgroundColor(Color.BLACK);
@@ -379,6 +382,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
gsyVideoPlayer.onClickUiToggle();
gsyVideoPlayer.setVideoAllCallBack(mVideoAllCallBack);
gsyVideoPlayer.setLooping(isLooping());
+ gsyVideoPlayer.setSpeed(getSpeed());
gsyVideoPlayer.setSmallVideoTextureView(new SmallVideoTouch(gsyVideoPlayer, marginLeft, marginTop));
GSYVideoManager.instance().setLastListener(this);
@@ -537,4 +541,16 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
public void setLockLand(boolean lockLand) {
this.mLockLand = lockLand;
}
+
+
+ public float getSpeed() {
+ return mSpeed;
+ }
+
+ /**
+ * 播放速度,只支持6.0以上
+ */
+ public void setSpeed(float speed) {
+ this.mSpeed = speed;
+ }
}