mediaPlayer 를 사용하는 곳은 항상 초기화 되어 있는지 확인 하고 로직이 실행되도록 수정

This commit is contained in:
2023-08-18 21:06:53 +09:00
parent a4cdbebeb4
commit f7299cc0df

View File

@@ -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(
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,6 +373,7 @@ class AudioContentPlayService :
}
override fun onPrepared(mp: MediaPlayer?) {
if (this::mediaPlayer.isInitialized) {
saveNewPlaybackTracking(totalDuration = mediaPlayer.duration, progress = 0)
sendBroadcast(
Intent(Constants.ACTION_AUDIO_CONTENT_RECEIVER)
@@ -426,6 +430,7 @@ class AudioContentPlayService :
}
)
}
}
private fun updateNotification() {
val intent = Intent(this, MainActivity::class.java)