From 81faf3f7ee07d3d169c945f5eb45700e7578fcfa Mon Sep 17 00:00:00 2001 From: klaus Date: Tue, 6 Aug 2024 12:14:15 +0900 Subject: [PATCH] =?UTF-8?q?=ED=81=AC=EB=A6=AC=EC=97=90=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=20=EC=BB=A4=EB=AE=A4=EB=8B=88=ED=8B=B0=20=EA=B2=8C=EC=8B=9C?= =?UTF-8?q?=EA=B8=80=20=EC=98=A4=EB=94=94=EC=98=A4=20=EC=9E=AC=EC=83=9D=20?= =?UTF-8?q?-=20=ED=81=AC=EB=A6=AC=EC=97=90=EC=9D=B4=ED=84=B0=20=EC=BB=A4?= =?UTF-8?q?=EB=AE=A4=EB=8B=88=ED=8B=B0=20=EA=B2=8C=EC=8B=9C=EA=B8=80=20?= =?UTF-8?q?=EC=98=A4=EB=94=94=EC=98=A4=20=EC=9E=AC=EC=83=9D=EC=8B=9C=20?= =?UTF-8?q?=EB=B0=B1=EA=B7=B8=EB=9D=BC=EC=9A=B4=EB=93=9C=EC=97=90=EC=84=9C?= =?UTF-8?q?=20=EC=9E=AC=EC=83=9D=20=EC=A4=91=EC=9D=B8=20=EC=98=A4=EB=94=94?= =?UTF-8?q?=EC=98=A4=20=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=9D=BC=EC=8B=9C?= =?UTF-8?q?=EC=A0=95=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreatorCommunityMediaPlayerManager.kt | 88 +++++++++++-------- 1 file changed, 52 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/player/CreatorCommunityMediaPlayerManager.kt b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/player/CreatorCommunityMediaPlayerManager.kt index 8be8c65..4505431 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/player/CreatorCommunityMediaPlayerManager.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/player/CreatorCommunityMediaPlayerManager.kt @@ -1,10 +1,12 @@ package kr.co.vividnext.sodalive.explorer.profile.creator_community.all.player import android.content.Context +import android.content.Intent import android.media.AudioAttributes import android.media.MediaPlayer import android.net.Uri import android.widget.Toast +import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService import java.io.IOException data class CreatorCommunityContentItem(val contentId: Long, val url: String) @@ -17,7 +19,49 @@ class CreatorCommunityMediaPlayerManager( private var currentPlayingContentId: Long? = null private var isPaused: Boolean = false + fun pauseContent() { + mediaPlayer?.pause() + isPaused = true + updateUI() + } + + private fun resumeContent() { + pauseAudioContentService() + mediaPlayer?.start() + isPaused = false + updateUI() + } + + fun stopContent() { + mediaPlayer?.let { + it.stop() + it.release() + mediaPlayer = null + } + currentPlayingContentId = null + isPaused = false + updateUI() + } + + fun toggleContent(creatorCommunityContentItem: CreatorCommunityContentItem) { + if (currentPlayingContentId == creatorCommunityContentItem.contentId) { + if (mediaPlayer?.isPlaying == true) { + pauseContent() + } else { + resumeContent() + } + } else { + playContent(creatorCommunityContentItem) + } + } + + fun isPlayingContent(contentId: Long): Boolean { + return currentPlayingContentId == contentId && mediaPlayer?.isPlaying == true + } + private fun playContent(creatorCommunityContentItem: CreatorCommunityContentItem) { + pauseAudioContentService() + if (currentPlayingContentId == creatorCommunityContentItem.contentId && isPaused) { resumeContent() return @@ -56,42 +100,14 @@ class CreatorCommunityMediaPlayerManager( updateUI() } - fun pauseContent() { - mediaPlayer?.pause() - isPaused = true - updateUI() - } - - private fun resumeContent() { - mediaPlayer?.start() - isPaused = false - updateUI() - } - - fun stopContent() { - mediaPlayer?.let { - it.stop() - it.release() - mediaPlayer = null - } - currentPlayingContentId = null - isPaused = false - updateUI() - } - - fun toggleContent(creatorCommunityContentItem: CreatorCommunityContentItem) { - if (currentPlayingContentId == creatorCommunityContentItem.contentId) { - if (mediaPlayer?.isPlaying == true) { - pauseContent() - } else { - resumeContent() + private fun pauseAudioContentService() { + context.startService( + Intent( + context, + AudioContentPlayService::class.java + ).apply { + action = AudioContentPlayService.MusicAction.PAUSE.name } - } else { - playContent(creatorCommunityContentItem) - } - } - - fun isPlayingContent(contentId: Long): Boolean { - return currentPlayingContentId == contentId && mediaPlayer?.isPlaying == true + ) } }