From 4e708d898b7957c59578cd5bc206a4a560fcd1b8 Mon Sep 17 00:00:00 2001
From: shuyu <359369982@qq.com>
Date: Fri, 2 Dec 2016 13:49:31 +0800
Subject: [PATCH] =?UTF-8?q?1.3.7=20=E4=BC=98=E5=8C=96=E4=BA=86=E6=9A=82?=
=?UTF-8?q?=E5=81=9C=E7=9A=84=E6=97=B6=E5=80=99=E9=80=80=E5=90=8E=E5=8F=B0?=
=?UTF-8?q?=E9=BB=91=E8=89=B2=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 6 ++---
.../gsyvideoplayer/SampleExtendsPlayer.java | 1 +
gradle.properties | 2 +-
.../shuyu/gsyvideoplayer/GSYVideoPlayer.java | 23 +++++++++++++++++--
.../video/StandardGSYVideoPlayer.java | 13 ++++++++++-
5 files changed, 38 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index f81305f..cb58e46 100644
--- a/README.md
+++ b/README.md
@@ -21,13 +21,13 @@
com.shuyu
gsyVideoPlayer
- 1.3.5
+ 1.3.7
pom
```
```
-compile 'com.shuyu:gsyVideoPlayer:1.3.5'
+compile 'com.shuyu:gsyVideoPlayer:1.3.7'
```
## 效果,录屏下的屏幕旋转和实际有些出入
@@ -47,7 +47,7 @@ compile 'com.shuyu:gsyVideoPlayer:1.3.5'
*
3、详情模式
-### 1.3.7 优化了弹出框;优化了暂停的时候全屏/恢复全屏会是黑色的问题
+### 1.3.7 优化了弹出框;优化了暂停的时候(全屏/恢复全屏/退到)会是黑色的问题;解决了暂停的时候拖动进度条问题
### 1.3.6 区分了没有网络和没有wifi的提示;更新了Demo detailPlayer直接旋转全屏,返回正常的详情效果
diff --git a/app/src/main/java/com/example/gsyvideoplayer/SampleExtendsPlayer.java b/app/src/main/java/com/example/gsyvideoplayer/SampleExtendsPlayer.java
index cf816e6..14c4bd1 100644
--- a/app/src/main/java/com/example/gsyvideoplayer/SampleExtendsPlayer.java
+++ b/app/src/main/java/com/example/gsyvideoplayer/SampleExtendsPlayer.java
@@ -8,6 +8,7 @@ import android.view.View;
import com.shuyu.gsyvideoplayer.GSYVideoPlayer;
/**
* Created by shuyu on 2016/11/18.
+ * 还是建议继承StandardGSYVideoPlayer
*/
public class SampleExtendsPlayer extends GSYVideoPlayer {
diff --git a/gradle.properties b/gradle.properties
index e8d7f9c..f274812 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.3.6
+PROJ_VERSION=1.3.7
PROJ_NAME=gsyVideo
PROJ_WEBSITEURL=hhttps://github.com/CarGuo/GSYVideoPlayer
PROJ_ISSUETRACKERURL=
diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
index c391af1..b42df9e 100644
--- a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
+++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
@@ -30,7 +30,6 @@ import com.shuyu.gsyvideoplayer.utils.StorageUtils;
import com.shuyu.gsyvideoplayer.video.GSYBaseVideoPlayer;
import java.io.File;
-import java.util.HashMap;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
@@ -259,6 +258,7 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
if (isCurrentMediaListener()) {
cancelProgressTimer();
GSYVideoManager.instance().releaseMediaPlayer();
+ releasePauseCoverAndBitmap();
}
if (mAudioManager != null) {
mAudioManager.abandonAudioFocus(onAudioFocusChangeListener);
@@ -666,6 +666,7 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
&& !mFullPauseBitmap.isRecycled()) {
mCoverImageView.setImageResource(R.drawable.empty_drawable);
mCoverImageView.setVisibility(GONE);
+ //如果在这里销毁,可能会draw a recycler bitmap error
mFullPauseBitmap = null;
}
} catch (Exception e) {
@@ -673,6 +674,24 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
}
}
+ /**
+ * 销毁暂停切换显示的bitmap
+ */
+ protected void releasePauseCoverAndBitmap() {
+ try {
+ if (mCurrentState != CURRENT_STATE_PAUSE && mFullPauseBitmap != null
+ && !mFullPauseBitmap.isRecycled()) {
+ mCoverImageView.setImageResource(R.drawable.empty_drawable);
+ mCoverImageView.setVisibility(GONE);
+ mFullPauseBitmap.recycle();
+ mFullPauseBitmap = null;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
protected void showProgressDialog(float deltaX,
String seekTime, int seekTimePosition,
String totalTime, int totalTimeDuration) {
@@ -726,7 +745,7 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
mVideoAllCallBack.onClickSeekbar(mUrl, mObjects);
}
}
- if (GSYVideoManager.instance().getMediaPlayer() != null && GSYVideoManager.instance().getMediaPlayer().isPlaying()) {
+ if (GSYVideoManager.instance().getMediaPlayer() != null && mHadPlay) {
int time = seekBar.getProgress() * getDuration() / 100;
GSYVideoManager.instance().getMediaPlayer().seekTo(time);
}
diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
index 075aa3b..5de6e59 100644
--- a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
+++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
@@ -412,15 +412,17 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset();
mThumbImageViewLayout.setVisibility(View.INVISIBLE);
- mCoverImageView.setVisibility(View.INVISIBLE);
+ //mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE);
updateStartImage();
+ updatePauseCover();
}
private void changeUiToPauseClear() {
Debuger.printfLog("changeUiToPauseClear");
changeUiToClear();
mBottomProgressBar.setVisibility(View.VISIBLE);
+ updatePauseCover();
}
private void changeUiToPlayingBufferingShow() {
@@ -514,6 +516,15 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
}
}
+
+ private void updatePauseCover() {
+ if (mFullPauseBitmap == null || mFullPauseBitmap.isRecycled()) {
+ Point point = CommonUtil.getPauseBitmapSize(getWidth(), getHeight());
+ mFullPauseBitmap = mTextureView.getBitmap(point.x, point.y);
+ }
+ showPauseCover();
+ }
+
@Override
protected void showProgressDialog(float deltaX, String seekTime, int seekTimePosition, String totalTime, int totalTimeDuration) {
super.showProgressDialog(deltaX, seekTime, seekTimePosition, totalTime, totalTimeDuration);
--
GitLab