Przeglądaj źródła

feat: 房间mp4主题默认静音

wutiaorong 6 miesięcy temu
rodzic
commit
2439a74747

+ 9 - 0
app/src/main/java/com/adealink/weparty/exoplayer/ExoPlayerHelper.kt

@@ -41,6 +41,7 @@ class ExoPlayerHelper : DefaultLifecycleObserver {
     private var scaleMode: Int? = null
     private var repeatMode = Player.REPEAT_MODE_OFF
     private var playWhenReady = true
+    private var volume = 1f
     private var player: ExoPlayer? = null
     private var cache: Cache? = null
 
@@ -71,6 +72,7 @@ class ExoPlayerHelper : DefaultLifecycleObserver {
         var scaleMode: Int? = null
         var repeatMode = Player.REPEAT_MODE_OFF
         var playWhenReady = true
+        private var volume = 1f
         var doOnReadyCallback: (() -> Unit)? = null
         var onErrorCallback: ((error: PlaybackException) -> Unit)? = null
         private var onPauseWhenBuffering: ((isPlaying: Boolean) -> Unit)? = null
@@ -95,6 +97,11 @@ class ExoPlayerHelper : DefaultLifecycleObserver {
             return this
         }
 
+        fun volume(volume: Float): Builder {
+            this.volume = volume
+            return this
+        }
+
         fun playListener(
             doOnReadyCallback: (() -> Unit)? = null,
             onErrorCallback: ((error: PlaybackException) -> Unit)? = null
@@ -118,6 +125,7 @@ class ExoPlayerHelper : DefaultLifecycleObserver {
                 this.scaleMode = this@Builder.scaleMode
                 this.repeatMode = this@Builder.repeatMode
                 this.playWhenReady = this@Builder.playWhenReady
+                this.volume = this@Builder.volume
                 this.doOnReadyCallback = this@Builder.doOnReadyCallback
                 this.onErrorCallback = this@Builder.onErrorCallback
                 this.onPauseWhenBuffering = this@Builder.onPauseWhenBuffering
@@ -142,6 +150,7 @@ class ExoPlayerHelper : DefaultLifecycleObserver {
                 }
                 player.playWhenReady = playWhenReady
                 player.repeatMode = repeatMode
+                player.volume = volume
 
                 player.addListener(object : Player.Listener {
                     override fun onPlayWhenReadyChanged(playWhenReady: Boolean, reason: Int) {

+ 2 - 0
module/room/src/main/java/com/adealink/weparty/room/theme/ThemeComp.kt

@@ -273,6 +273,7 @@ class ThemeComp(
                     .scaleMode(C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING)
                     .repeatMode(REPEAT_MODE_ONE)
                     .playWhenReady(true)
+                    .volume(0f)
                     .playListener(
                         doOnReadyCallback = {
                             if (isValid) {
@@ -312,6 +313,7 @@ class ThemeComp(
                     }
                     .observe(lifecycle)
                 mp4View.doOnDetach {
+                    videoPlayer?.unObserve(lifecycle)
                     videoPlayer?.getPlayer()?.release()
                     videoPlayer = null
                 }