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