From 95bb1f3a5bfc49d758ddb3ea7ed2a01e929f31ee Mon Sep 17 00:00:00 2001 From: Duncan McNamara Date: Wed, 26 Mar 2025 15:29:22 +0100 Subject: [PATCH] VideoPlayer: fix audio playback when leaving pip When you open pip with play in background, when you quit pip, in the onStop, it will switch to audio. If you check if system Pip is running you can stop that, but it will stop playback from running with the screen off, so check for screen off also. This means that isInPiPMode will stay true, even though PiP has been killed a while ago, audio playback in background is still running. --- .../src/org/videolan/vlc/gui/video/VideoPlayerActivity.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 203b50d0b..795e4830a 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 @@ -968,15 +968,16 @@ open class VideoPlayerActivity : AppCompatActivity(), PlaybackService.Callback, unregisterReceiver(btReceiver) alertDialog?.dismiss() + val isPlayingPopup = service?.isPlayingPopup ?: false + val isSystemPip = (service?.isInPiPMode?.value ?: false) && !isPlayingPopup if (displayManager.isPrimary && !isFinishing && service?.isPlaying == true - && "1" == settings.getString(KEY_VIDEO_APP_SWITCH, "0") && !PlaybackService.hasRenderer()) { + && "1" == settings.getString(KEY_VIDEO_APP_SWITCH, "0") && !PlaybackService.hasRenderer() + && ((!isSystemPip && isInteractive) || (isSystemPip && !isInteractive))) { switchToAudioMode(false) } - cleanUI() stopPlayback() service?.playlistManager?.videoStatsOn?.postValue(false) - val isPlayingPopup = service?.isPlayingPopup ?: false if (isInteractive && !isPlayingPopup) service?.isInPiPMode?.value = false