[Android] Fix resume playback paused when play queue was finished

Nicolas Pomepuy git at videolan.org
Fri Apr 25 06:07:52 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Thu Apr 17 07:29:35 2025 +0200| [afeab55a6a9d823dec39ee74b903d15ea98bb82d] | committer: Nicolas Pomepuy

Fix resume playback paused when play queue was finished

Fixes #3192

> https://code.videolan.org/videolan/vlc-android/commit/afeab55a6a9d823dec39ee74b903d15ea98bb82d
---

 application/vlc-android/src/org/videolan/vlc/PlaybackService.kt     | 6 +++++-
 .../src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt           | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt b/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
index 60b1412db2..daf8ea96ad 100644
--- a/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
+++ b/application/vlc-android/src/org/videolan/vlc/PlaybackService.kt
@@ -229,6 +229,7 @@ class PlaybackService : MediaBrowserServiceCompat(), LifecycleOwner, CoroutineSc
     var resetOnInteraction = false
     var sleepTimerInterval = 0L
     private var mediaEndReached = false
+    var playQueueFinished = false
 
     var isInPiPMode: MutableLiveData<Boolean> = MutableLiveData(false)
 
@@ -365,7 +366,10 @@ class PlaybackService : MediaBrowserServiceCompat(), LifecycleOwner, CoroutineSc
                 updateMetadata()
             }
             MediaPlayer.Event.MediaChanged -> if (BuildConfig.DEBUG) Log.d(TAG, "onEvent: MediaChanged")
-            MediaPlayer.Event.EndReached -> mediaEndReached = true
+            MediaPlayer.Event.EndReached -> {
+                mediaEndReached = true
+                playQueueFinished = !playlistManager.hasNext() || playlistManager.stopAfter == currentMediaPosition
+            }
         }
         cbActor.trySend(CbMediaPlayerEvent(event))
     }
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt b/application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt
index 79a6d1d30b..902814478d 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt
@@ -1105,7 +1105,7 @@ open class VideoPlayerActivity : AppCompatActivity(), PlaybackService.Callback,
             val tv = Settings.showTvUi
             val interactive = isInteractive
             wasPaused = !isPlaying || (!tv && !interactive)
-            if (wasPaused) settings.putSingle(VIDEO_PAUSED, true)
+            if (wasPaused && !playQueueFinished) settings.putSingle(VIDEO_PAUSED, true)
             if (!isFinishing) {
                 currentAudioTrack = audioTrack
                 currentSpuTrack = spuTrack



More information about the Android mailing list