From 5409bf412995421d61a213d91ff11bee1d8a06d6 Mon Sep 17 00:00:00 2001 From: zhangmengxiong Date: Wed, 22 Mar 2023 21:16:06 +0800 Subject: [PATCH] 1.8.0 --- .../main/java/com/mx/video/beans/MXConfig.kt | 6 ++++ .../java/com/mx/video/views/MXViewProvider.kt | 14 +++++++++ .../main/java/com/mx/video/views/MXViewSet.kt | 6 +++- README.md | 8 ++++- .../mx/mxvideo_demo/apps/NormalActivity.kt | 9 ++++++ app/src/main/res/layout/activity_normal.xml | 30 +++++++++++++++++++ build.gradle | 2 +- 7 files changed, 72 insertions(+), 3 deletions(-) diff --git a/MXVideoLib/src/main/java/com/mx/video/beans/MXConfig.kt b/MXVideoLib/src/main/java/com/mx/video/beans/MXConfig.kt index 0c0db92..fcc69d0 100644 --- a/MXVideoLib/src/main/java/com/mx/video/beans/MXConfig.kt +++ b/MXVideoLib/src/main/java/com/mx/video/beans/MXConfig.kt @@ -154,6 +154,11 @@ class MXConfig : Serializable { */ val replayLiveSourceWhenError = MXValueObservable(false) + /** + * 没有设置source时不显示播放按钮 + */ + val hidePlayBtnWhenNoSource = MXValueObservable(false) + /** * 显示/隐藏动画的时长 */ @@ -190,6 +195,7 @@ class MXConfig : Serializable { fullScreenSensorMode.set(target.fullScreenSensorMode.get()) replayLiveSourceWhenError.set(target.replayLiveSourceWhenError.get()) playerViewSize.set(target.playerViewSize.get().clone()) + hidePlayBtnWhenNoSource.set(target.hidePlayBtnWhenNoSource.get()) animatorDuration.set(target.animatorDuration.get()) } diff --git a/MXVideoLib/src/main/java/com/mx/video/views/MXViewProvider.kt b/MXVideoLib/src/main/java/com/mx/video/views/MXViewProvider.kt index af1079c..5da1779 100644 --- a/MXVideoLib/src/main/java/com/mx/video/views/MXViewProvider.kt +++ b/MXVideoLib/src/main/java/com/mx/video/views/MXViewProvider.kt @@ -125,6 +125,20 @@ internal class MXViewProvider(val viewSet: MXViewSet, val mxVideo: IMXVideo, val viewSet.setViewVisible(viewSet.mxCurrentTimeTxv, View.VISIBLE) viewSet.setViewVisible(viewSet.mxTotalTimeTxv, View.VISIBLE) } + if (config.hidePlayBtnWhenNoSource.get() && source == null) { + viewSet.setViewVisible(viewSet.mxPlayPauseBtn, View.INVISIBLE) + } + } + config.hidePlayBtnWhenNoSource.addObserver { hide -> + if (hide) { + if (config.source.get() == null) { + viewSet.setViewVisible(viewSet.mxPlayPauseBtn, View.INVISIBLE) + } + } else { + if (config.state.get() in arrayOf(MXState.IDLE, MXState.NORMAL)) { + viewSet.setViewVisible(viewSet.mxPlayPauseBtn, View.VISIBLE) + } + } } // 预加载状态更新 diff --git a/MXVideoLib/src/main/java/com/mx/video/views/MXViewSet.kt b/MXVideoLib/src/main/java/com/mx/video/views/MXViewSet.kt index 145b776..303f7a3 100644 --- a/MXVideoLib/src/main/java/com/mx/video/views/MXViewSet.kt +++ b/MXVideoLib/src/main/java/com/mx/video/views/MXViewSet.kt @@ -206,7 +206,11 @@ class MXViewSet(val rootView: View, val config: MXConfig) { // 下面几种情况下,显示播放按钮 if (state in arrayOf(MXState.IDLE, MXState.NORMAL, MXState.PREPARED, MXState.PAUSE)) { - setViewShow(mxPlayPauseBtn, true) + if (config.source.get() == null && config.hidePlayBtnWhenNoSource.get()) { + setViewShow(mxPlayPauseBtn, false) + } else { + setViewShow(mxPlayPauseBtn, true) + } return } // 下面几种情况下,隐藏播放按钮 diff --git a/README.md b/README.md index c6cb75c..879d857 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ 最新版本:[![](https://jitpack.io/v/com.gitee.zhangmengxiong/MXVideo.svg)](https://jitpack.io/#com.gitee.zhangmengxiong/MXVideo) ```groovy - implementation 'com.gitee.zhangmengxiong:MXVideo:1.7.9' + implementation 'com.gitee.zhangmengxiong:MXVideo:1.8.0' ``` ![Normal](https://gitee.com/zhangmengxiong/MXVideo/raw/master/imgs/1.png) @@ -214,6 +214,12 @@ mxVideoStd.getConfig().canFullScreen.set(false) mxVideoStd.getConfig().canShowNetSpeed.set(false) ``` +- 没有设置source时不显示播放按钮 +```kotlin +// 播放前设置 默认=false +mxVideoStd.getConfig().hidePlayBtnWhenNoSource.set(false) +``` + - 设置全屏按钮是否显示 ```kotlin // 播放前设置 默认=true diff --git a/app/src/main/java/com/mx/mxvideo_demo/apps/NormalActivity.kt b/app/src/main/java/com/mx/mxvideo_demo/apps/NormalActivity.kt index 6b182df..8dd140f 100644 --- a/app/src/main/java/com/mx/mxvideo_demo/apps/NormalActivity.kt +++ b/app/src/main/java/com/mx/mxvideo_demo/apps/NormalActivity.kt @@ -147,6 +147,15 @@ class NormalActivity : AppCompatActivity() { } playerRG.getChildAt(0)?.performClick() + hidePlayBtnWhenNoSourceRG.setOnCheckedChangeListener { group, checkedId -> + if (checkedId == R.id.hidePlayBtnWhenNoSourceTrue) { + mxVideoStd.getConfig().hidePlayBtnWhenNoSource.set(true) + } else { + mxVideoStd.getConfig().hidePlayBtnWhenNoSource.set(false) + } + } + hidePlayBtnWhenNoSourceRG.getChildAt(1)?.performClick() + canLoopRG.getChildAt(1)?.performClick() fillTypeRG.setOnCheckedChangeListener { group, checkedId -> diff --git a/app/src/main/res/layout/activity_normal.xml b/app/src/main/res/layout/activity_normal.xml index 150c323..1e44e05 100644 --- a/app/src/main/res/layout/activity_normal.xml +++ b/app/src/main/res/layout/activity_normal.xml @@ -241,6 +241,36 @@ android:text="关闭" /> + + + + + + + + + +