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() {