From b89ab6c2fd54cedfb76228d3189deafbecee705a Mon Sep 17 00:00:00 2001 From: Florian Renaud Date: Wed, 19 Oct 2022 13:04:03 +0200 Subject: [PATCH] VoiceBroadcastPlayer - release previous MediaPlayer --- .../voicebroadcast/VoiceBroadcastPlayer.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/voicebroadcast/VoiceBroadcastPlayer.kt b/vector/src/main/java/im/vector/app/features/voicebroadcast/VoiceBroadcastPlayer.kt index e93e128686..c7259b12f8 100644 --- a/vector/src/main/java/im/vector/app/features/voicebroadcast/VoiceBroadcastPlayer.kt +++ b/vector/src/main/java/im/vector/app/features/voicebroadcast/VoiceBroadcastPlayer.kt @@ -76,10 +76,8 @@ class VoiceBroadcastPlayer @Inject constructor( fun stop() { currentMediaPlayer?.stop() - currentMediaPlayer?.release() - currentMediaPlayer?.setOnInfoListener(null) - currentMediaPlayer = null currentVoiceBroadcastEventId?.let { playbackTracker.stopPlayback(it) } + release(currentMediaPlayer) playlist = emptyList() 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 { override fun onInfo(mp: MediaPlayer, what: Int, extra: Int): Boolean { when (what) { MediaPlayer.MEDIA_INFO_STARTED_AS_NEXT -> { + release(currentMediaPlayer) currentMediaPlayer = mp currentPlayingIndex++ mediaPlayerScope.launch { prepareNextFile() }