From f7299cc0df515c51671f1c31e6fafad24dcc1f0f Mon Sep 17 00:00:00 2001 From: klaus Date: Fri, 18 Aug 2023 21:06:53 +0900 Subject: [PATCH] =?UTF-8?q?mediaPlayer=20=EB=A5=BC=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EA=B3=B3=EC=9D=80=20=ED=95=AD=EC=83=81=20?= =?UTF-8?q?=EC=B4=88=EA=B8=B0=ED=99=94=20=EB=90=98=EC=96=B4=20=EC=9E=88?= =?UTF-8?q?=EB=8A=94=EC=A7=80=20=ED=99=95=EC=9D=B8=20=ED=95=98=EA=B3=A0=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=EC=9D=B4=20=EC=8B=A4=ED=96=89=EB=90=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../audio_content/AudioContentPlayService.kt | 123 +++++++++--------- 1 file changed, 64 insertions(+), 59 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/AudioContentPlayService.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/AudioContentPlayService.kt index b2d3c5e..6f3d6a0 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/AudioContentPlayService.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/AudioContentPlayService.kt @@ -146,7 +146,7 @@ class AudioContentPlayService : } MusicAction.PLAY.name -> { - if (!isPlaying) { + if (!isPlaying && this::mediaPlayer.isInitialized) { mediaPlayer.start() toggleIsPlaying() updateNotification() @@ -154,7 +154,7 @@ class AudioContentPlayService : } MusicAction.PAUSE.name -> { - if (isPlaying) { + if (isPlaying && this::mediaPlayer.isInitialized) { mediaPlayer.pause() toggleIsPlaying() updateNotification() @@ -186,11 +186,14 @@ class AudioContentPlayService : MusicAction.PROGRESS.name -> { val progress = intent.getIntExtra(Constants.EXTRA_AUDIO_CONTENT_PROGRESS, 0) - if (progress > 0) { - if (contentId != null) saveNewPlaybackTracking( - totalDuration = mediaPlayer.duration, - progress = progress - ) + if (progress > 0 && this::mediaPlayer.isInitialized) { + if (contentId != null) { + saveNewPlaybackTracking( + totalDuration = mediaPlayer.duration, + progress = progress + ) + } + mediaPlayer.seekTo(progress) } } @@ -258,7 +261,7 @@ class AudioContentPlayService : } ) - if (isPlaying) { + if (isPlaying && this::mediaPlayer.isInitialized) { mediaPlayer.stop() setEndPositionPlaybackTracking(mediaPlayer.currentPosition) @@ -290,12 +293,12 @@ class AudioContentPlayService : return null } - override fun onCompletion(mp: MediaPlayer?) { - setEndPositionPlaybackTracking(mediaPlayer.currentPosition) + override fun onCompletion(mp: MediaPlayer) { + setEndPositionPlaybackTracking(mp.currentPosition) if (SharedPreferenceManager.isContentPlayLoop) { - saveNewPlaybackTracking(totalDuration = mediaPlayer.duration, progress = 0) - mediaPlayer.start() + saveNewPlaybackTracking(totalDuration = mp.duration, progress = 0) + mp.start() } else { toggleIsPlaying(false) mediaPlayer.release() @@ -370,61 +373,63 @@ class AudioContentPlayService : } override fun onPrepared(mp: MediaPlayer?) { - saveNewPlaybackTracking(totalDuration = mediaPlayer.duration, progress = 0) - sendBroadcast( - Intent(Constants.ACTION_AUDIO_CONTENT_RECEIVER) - .apply { - putExtra( - Constants.EXTRA_AUDIO_CONTENT_NEXT_ACTION, - MusicAction.PLAY - ) + if (this::mediaPlayer.isInitialized) { + saveNewPlaybackTracking(totalDuration = mediaPlayer.duration, progress = 0) + sendBroadcast( + Intent(Constants.ACTION_AUDIO_CONTENT_RECEIVER) + .apply { + putExtra( + Constants.EXTRA_AUDIO_CONTENT_NEXT_ACTION, + MusicAction.PLAY + ) - putExtra( - Constants.EXTRA_AUDIO_CONTENT_DURATION, - mediaPlayer.duration - ) + putExtra( + Constants.EXTRA_AUDIO_CONTENT_DURATION, + mediaPlayer.duration + ) - putExtra( - Constants.EXTRA_AUDIO_CONTENT_ID, - contentId - ) + putExtra( + Constants.EXTRA_AUDIO_CONTENT_ID, + contentId + ) - putExtra( - Constants.EXTRA_AUDIO_CONTENT_ALERT_PREVIEW, - true - ) - } - ) + putExtra( + Constants.EXTRA_AUDIO_CONTENT_ALERT_PREVIEW, + true + ) + } + ) - sendBroadcast( - Intent(Constants.ACTION_MAIN_AUDIO_CONTENT_RECEIVER) - .apply { - putExtra( - Constants.EXTRA_AUDIO_CONTENT_PLAYING, - false - ) + sendBroadcast( + Intent(Constants.ACTION_MAIN_AUDIO_CONTENT_RECEIVER) + .apply { + putExtra( + Constants.EXTRA_AUDIO_CONTENT_PLAYING, + false + ) - putExtra( - Constants.EXTRA_AUDIO_CONTENT_SHOWING, - true - ) + putExtra( + Constants.EXTRA_AUDIO_CONTENT_SHOWING, + true + ) - putExtra( - Constants.EXTRA_AUDIO_CONTENT_TITLE, - title - ) + putExtra( + Constants.EXTRA_AUDIO_CONTENT_TITLE, + title + ) - putExtra( - Constants.EXTRA_NICKNAME, - nickname - ) + putExtra( + Constants.EXTRA_NICKNAME, + nickname + ) - putExtra( - Constants.EXTRA_AUDIO_CONTENT_COVER_IMAGE_URL, - coverImageUrl - ) - } - ) + putExtra( + Constants.EXTRA_AUDIO_CONTENT_COVER_IMAGE_URL, + coverImageUrl + ) + } + ) + } } private fun updateNotification() {