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 0c0db924747001af38e11cb554579daeeda924d3..fcc69d004b609a24e3333af316a40fa8a01f8bbd 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 af1079c3bc0bfd4a5f5de4808f6f76fa929951dd..5da177934f174fca00847ad52624f3adaf6d8588 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 145b776cad5af37bb5f1b987a75837acfa7324a6..303f7a3ac93782e89820a085b6caa1387e6a14c7 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 c6cb75c910bb6ccad90a22415a2a3d027ac95b8e..879d85790369c46faa49245f8b1641ab322f2d0c 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 6b182df118f798290fd5165308fe02d2b9731f60..8dd140f487af0a93d0cb6150b653039c8c095e89 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 150c323d8671264ddd416ea7415237b5eeb58e5c..1e44e05fd21ed170ed62ee09adc94934cba417be 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="关闭" /> + + + + + + + + + +