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="关闭" />
+
+
+
+
+
+
+
+
+
+