Эх сурвалжийг харах

add media session for video playback

Signed-off-by: parneet-guraya <gurayaparneet@gmail.com>
parneet-guraya 10 сар өмнө
parent
commit
a98fd63460

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

@@ -47,6 +47,7 @@ import androidx.media3.common.Player
 import androidx.media3.common.util.UnstableApi
 import androidx.media3.exoplayer.ExoPlayer
 import androidx.media3.session.MediaController
+import androidx.media3.session.MediaSession
 import androidx.media3.session.SessionToken
 import androidx.media3.ui.DefaultTimeBar
 import androidx.media3.ui.PlayerView
@@ -128,6 +129,7 @@ class PreviewMediaActivity :
     private lateinit var binding: ActivityPreviewMediaBinding
     private var emptyListView: ViewGroup? = null
     private var videoPlayer: ExoPlayer? = null
+    private var videoMediaSession: MediaSession? = null
     private var audioMediaController: MediaController? = null
     private var nextcloudClient: NextcloudClient? = null
     private lateinit var windowInsetsController: WindowInsetsControllerCompat
@@ -317,7 +319,7 @@ class PreviewMediaActivity :
                 nextcloudClient?.let { client ->
                     handler.post {
                         videoPlayer = createNextcloudExoplayer(this, client)
-
+                        videoMediaSession = MediaSession.Builder(this,videoPlayer as Player).build()
 
                         videoPlayer?.let { player ->
                             player.addListener(
@@ -343,7 +345,9 @@ class PreviewMediaActivity :
             savedPlaybackPosition = it.currentPosition
             autoplay = it.playWhenReady
             it.release()
+            videoMediaSession?.release()
         }
+        videoMediaSession = null
         videoPlayer = null
     }
 

+ 6 - 0
app/src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.kt

@@ -37,8 +37,10 @@ import androidx.core.view.MenuProvider
 import androidx.drawerlayout.widget.DrawerLayout
 import androidx.lifecycle.Lifecycle
 import androidx.media3.common.MediaItem
+import androidx.media3.common.Player
 import androidx.media3.common.util.UnstableApi
 import androidx.media3.exoplayer.ExoPlayer
+import androidx.media3.session.MediaSession
 import com.nextcloud.client.account.User
 import com.nextcloud.client.account.UserAccountManager
 import com.nextcloud.client.di.Injectable
@@ -114,6 +116,7 @@ class PreviewMediaFragment : FileFragment(), OnTouchListener, Injectable {
     lateinit var binding: FragmentPreviewMediaBinding
     private var emptyListView: ViewGroup? = null
     private var exoPlayer: ExoPlayer? = null
+    private var mediaSession: MediaSession? = null
     private var nextcloudClient: NextcloudClient? = null
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -243,6 +246,7 @@ class PreviewMediaFragment : FileFragment(), OnTouchListener, Injectable {
             val listener = ExoplayerListener(context, binding.exoplayerView, it) { goBackToLivePhoto() }
             it.addListener(listener)
         }
+        mediaSession = MediaSession.Builder(requireContext(),exoPlayer as Player).build()
     }
 
     private fun releaseVideoPlayer() {
@@ -250,7 +254,9 @@ class PreviewMediaFragment : FileFragment(), OnTouchListener, Injectable {
             savedPlaybackPosition = it.currentPosition
             autoplay = it.playWhenReady
             it.release()
+            mediaSession?.release()
         }
+        mediaSession = null
         exoPlayer = null
     }