[Android] PlayerController: add isReleased and hasMedia guards to SPU track methods

Nicolas Pomepuy git at videolan.org
Wed Sep 9 06:43:37 UTC 2026


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Fri Sep  4 11:46:53 2026 +0200| [f7de9be73f59ae6e0aa50e5619dda91371a5bcc7] | committer: Duncan McNamara

PlayerController: add isReleased and hasMedia guards to SPU track methods

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

 .../vlc-android/src/org/videolan/vlc/media/PlayerController.kt | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt b/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt
index 0c836ec7e8..15bffc8102 100644
--- a/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt
+++ b/application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt
@@ -164,7 +164,7 @@ class PlayerController(val context: Context) : IVLCVout.Callback, MediaPlayer.Ev
 
     fun getRate() = if (mediaplayer.hasMedia() && !mediaplayer.isReleased && playbackState != PlaybackStateCompat.STATE_STOPPED) mediaplayer.rate else 1.0f
 
-    fun setSpuDelay(delay: Long) = mediaplayer.setSpuDelay(delay)
+    fun setSpuDelay(delay: Long) = !mediaplayer.isReleased && mediaplayer.hasMedia() && mediaplayer.setSpuDelay(delay)
 
     fun setVideoTrackEnabled(enabled: Boolean) = mediaplayer.setVideoTrackEnabled(enabled)
 
@@ -172,13 +172,13 @@ class PlayerController(val context: Context) : IVLCVout.Callback, MediaPlayer.Ev
 
     fun addSubtitleTrack(uri: Uri, select: Boolean) = mediaplayer.addSlave(IMedia.Slave.Type.Subtitle, uri, select)
 
-    fun getSpuTracks(): Array<out VlcTrack>? = mediaplayer.getAllSpuTracks()
+    fun getSpuTracks(): Array<out VlcTrack>? = if (!mediaplayer.isReleased && mediaplayer.hasMedia()) mediaplayer.getAllSpuTracks() else emptyArray()
 
-    fun getSpuTrack() = mediaplayer.getSelectedSpuTrack()?.getId() ?: "-1"
+    fun getSpuTrack() = if (!mediaplayer.isReleased && mediaplayer.hasMedia()) mediaplayer.getSelectedSpuTrack()?.getId() ?: "-1" else "-1"
 
-    fun setSpuTrack(index: String) = mediaplayer.setSpuTrack(index)
+    fun setSpuTrack(index: String) = !mediaplayer.isReleased && mediaplayer.hasMedia() && mediaplayer.setSpuTrack(index)
 
-    fun getSpuTracksCount() = mediaplayer.getSpuTracksCount()
+    fun getSpuTracksCount() = if (!mediaplayer.isReleased && mediaplayer.hasMedia()) mediaplayer.getSpuTracksCount() else 0
 
     fun setAudioDelay(delay: Long) = mediaplayer.setAudioDelay(delay)
 



More information about the Android mailing list