Przeglądaj źródła

stop media player to reset state to fresh start for another media

Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
parneet-guraya 10 miesięcy temu
rodzic
commit
c14886c36a

+ 9 - 2
app/src/main/java/com/nextcloud/client/media/BackgroundPlayerService.kt

@@ -79,7 +79,10 @@ class BackgroundPlayerService : MediaSessionService(), Injectable {
 
     private val stopReceiver = object : BroadcastReceiver() {
         override fun onReceive(context: Context?, intent: Intent?) {
-            release()
+            when(intent?.action){
+                RELEASE_MEDIA_SESSION_BROADCAST_ACTION -> release()
+                STOP_MEDIA_SESSION_BROADCAST_ACTION -> exoPlayer.stop()
+            }
         }
     }
 
@@ -88,7 +91,10 @@ class BackgroundPlayerService : MediaSessionService(), Injectable {
 
         registerBroadcastReceiver(
             stopReceiver,
-            IntentFilter(STOP_MEDIA_SESSION_BROADCAST_ACTION),
+            IntentFilter().apply {
+                addAction(RELEASE_MEDIA_SESSION_BROADCAST_ACTION)
+                addAction(STOP_MEDIA_SESSION_BROADCAST_ACTION)
+            },
             ReceiverFlag.NotExported
         )
 
@@ -212,6 +218,7 @@ class BackgroundPlayerService : MediaSessionService(), Injectable {
     }
 
     companion object {
+        const val RELEASE_MEDIA_SESSION_BROADCAST_ACTION = "com.nextcloud.client.media.RELEASE_MEDIA_SESSION"
         const val STOP_MEDIA_SESSION_BROADCAST_ACTION = "com.nextcloud.client.media.STOP_MEDIA_SESSION"
     }
 }

+ 6 - 1
app/src/main/java/com/owncloud/android/ui/preview/PreviewMediaActivity.kt

@@ -153,10 +153,15 @@ class PreviewMediaActivity :
 
         if(MimeTypeUtil.isVideo(file)){
             // release any background media session if exists
-            val intent = Intent(BackgroundPlayerService.STOP_MEDIA_SESSION_BROADCAST_ACTION).apply {
+            val intent = Intent(BackgroundPlayerService.RELEASE_MEDIA_SESSION_BROADCAST_ACTION).apply {
                 setPackage(packageName)
             }
             sendBroadcast(intent)
+        }else if(MimeTypeUtil.isAudio(file)){
+            val stopPlayer = Intent(BackgroundPlayerService.STOP_MEDIA_SESSION_BROADCAST_ACTION).apply {
+                setPackage(packageName)
+            }
+            sendBroadcast(stopPlayer)
         }
 
         showMediaTypeViews()