[Android] ExternalBrowser: reset player for unlabelled media

Duncan McNamara git at videolan.org
Wed Dec 4 09:00:11 UTC 2024


vlc-android | branch: master | Duncan McNamara <dcn.mcnamara at gmail.com> | Fri Nov 29 11:33:19 2024 +0100| [1f6022014c7f3b25c257cde61de3d377e1e86a4b] | committer: Nicolas Pomepuy

ExternalBrowser: reset player for unlabelled media

Some browsers won't prefix intent types with "video", if a video is
already playing in background, it will play the new video in background.
Because of this, it is safer to stop the player, causing 'isPlaying' to
go false in playIndex(...) and not keeping the previous state.

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

 application/vlc-android/src/org/videolan/vlc/StartActivity.kt | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/StartActivity.kt b/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
index d655d4eed7..6c97819a85 100644
--- a/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/StartActivity.kt
@@ -291,7 +291,13 @@ class StartActivity : FragmentActivity() {
             }
             intent.data?.authority == getString(R.string.tv_provider_authority) -> MediaUtils.openMediaNoUiFromTvContent(this at StartActivity, intent.data)
             intent.data?.authority == "skip_to" -> PlaybackService.instance?.playIndex(intent.getIntExtra("index", 0))
-            else -> withContext(Dispatchers.IO) { FileUtils.getUri(intent.data)}?.let { MediaUtils.openMediaNoUi(it) }
+            else -> withContext(Dispatchers.IO) { FileUtils.getUri(intent.data)}?.let {
+                // Some media might not be properly labeled
+                // As the last option, it is safer to reset the player before playing any media
+                if (PlaybackService.instance?.isPlaying == true)
+                    PlaybackService.instance?.playlistManager?.player?.stop()
+                MediaUtils.openMediaNoUi(it)
+            }
         }
         finish()
     }



More information about the Android mailing list