VoiceBroadcastPlayer - release previous MediaPlayer
This commit is contained in:
parent
6554f571f2
commit
b89ab6c2fd
@ -76,10 +76,8 @@ class VoiceBroadcastPlayer @Inject constructor(
|
|||||||
|
|
||||||
fun stop() {
|
fun stop() {
|
||||||
currentMediaPlayer?.stop()
|
currentMediaPlayer?.stop()
|
||||||
currentMediaPlayer?.release()
|
|
||||||
currentMediaPlayer?.setOnInfoListener(null)
|
|
||||||
currentMediaPlayer = null
|
|
||||||
currentVoiceBroadcastEventId?.let { playbackTracker.stopPlayback(it) }
|
currentVoiceBroadcastEventId?.let { playbackTracker.stopPlayback(it) }
|
||||||
|
release(currentMediaPlayer)
|
||||||
playlist = emptyList()
|
playlist = emptyList()
|
||||||
currentPlayingIndex = -1
|
currentPlayingIndex = -1
|
||||||
}
|
}
|
||||||
@ -147,11 +145,21 @@ class VoiceBroadcastPlayer @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun release(mp: MediaPlayer?) {
|
||||||
|
mp?.apply {
|
||||||
|
release()
|
||||||
|
setOnInfoListener(null)
|
||||||
|
setOnCompletionListener(null)
|
||||||
|
setOnErrorListener(null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
inner class MediaPlayerListener : MediaPlayer.OnInfoListener, MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener {
|
inner class MediaPlayerListener : MediaPlayer.OnInfoListener, MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener {
|
||||||
|
|
||||||
override fun onInfo(mp: MediaPlayer, what: Int, extra: Int): Boolean {
|
override fun onInfo(mp: MediaPlayer, what: Int, extra: Int): Boolean {
|
||||||
when (what) {
|
when (what) {
|
||||||
MediaPlayer.MEDIA_INFO_STARTED_AS_NEXT -> {
|
MediaPlayer.MEDIA_INFO_STARTED_AS_NEXT -> {
|
||||||
|
release(currentMediaPlayer)
|
||||||
currentMediaPlayer = mp
|
currentMediaPlayer = mp
|
||||||
currentPlayingIndex++
|
currentPlayingIndex++
|
||||||
mediaPlayerScope.launch { prepareNextFile() }
|
mediaPlayerScope.launch { prepareNextFile() }
|
||||||
|
Loading…
Reference in New Issue
Block a user