From f78a13bd2cfdd05f9a104e1acc5d3f6f3fe44213 Mon Sep 17 00:00:00 2001 From: klaus Date: Wed, 18 Dec 2024 16:47:57 +0900 Subject: [PATCH] =?UTF-8?q?MediaSession=20=EC=95=8C=EB=A6=BC=20=ED=84=B0?= =?UTF-8?q?=EC=B9=98=EC=8B=9C=20=EB=A9=94=EC=9D=B8=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../player/AudioContentPlayerService.kt | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerService.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerService.kt index 448ee60..5e00b46 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerService.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/player/AudioContentPlayerService.kt @@ -1,5 +1,6 @@ package kr.co.vividnext.sodalive.audio_content.player +import android.app.PendingIntent import android.content.Intent import android.net.Uri import android.os.Build @@ -28,6 +29,7 @@ import kr.co.vividnext.sodalive.audio_content.playlist.detail.AudioContentPlayli import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.Utils +import kr.co.vividnext.sodalive.main.MainActivity import org.koin.android.ext.android.inject @UnstableApi @@ -67,18 +69,6 @@ class AudioContentPlayerService : MediaSessionService() { super.onDestroy() } - override fun onTaskRemoved(rootIntent: Intent?) { - mediaSession?.run { - if ( - !player.playWhenReady || - player.mediaItemCount == 0 || - player.playbackState == Player.STATE_ENDED - ) { - onStopService() - } - } - } - override fun onGetSession(controllerInfo: MediaSession.ControllerInfo) = mediaSession override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { @@ -111,7 +101,18 @@ class AudioContentPlayerService : MediaSessionService() { } private fun initMediaSession() { + val contextIntent = Intent(applicationContext, MainActivity::class.java).apply { + flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP + } + val pendingIntent = PendingIntent.getActivity( + applicationContext, + 0, + contextIntent, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) + mediaSession = MediaSession.Builder(this, player!!) + .setSessionActivity(pendingIntent) .setCallback(object : MediaSession.Callback { override fun onConnect( session: MediaSession,