VoiceBroadcastPlayer - Improve currentVoiceBroadcastId

This commit is contained in:
Florian Renaud 2022-10-19 13:17:59 +02:00
parent 0c847cffc1
commit fe44a829af

View file

@ -51,8 +51,8 @@ class VoiceBroadcastPlayer @Inject constructor(
private var currentPlayingIndex: Int = -1 private var currentPlayingIndex: Int = -1
private var playlist = emptyList<MessageAudioEvent>() private var playlist = emptyList<MessageAudioEvent>()
private val currentVoiceBroadcastEventId private val currentVoiceBroadcastId
get() = playlist.firstOrNull()?.root?.getRelationContent()?.eventId get() = playlist.getOrNull(currentPlayingIndex)?.root?.getRelationContent()?.eventId
private val mediaPlayerListener = MediaPlayerListener() private val mediaPlayerListener = MediaPlayerListener()
@ -60,7 +60,7 @@ class VoiceBroadcastPlayer @Inject constructor(
val room = session.getRoom(roomId) ?: error("Unknown roomId: $roomId") val room = session.getRoom(roomId) ?: error("Unknown roomId: $roomId")
when { when {
currentVoiceBroadcastEventId != eventId -> { currentVoiceBroadcastId != eventId -> {
stop() stop()
updatePlaylist(room, eventId) updatePlaylist(room, eventId)
startPlayback() startPlayback()
@ -72,12 +72,12 @@ class VoiceBroadcastPlayer @Inject constructor(
fun pause() { fun pause() {
currentMediaPlayer?.pause() currentMediaPlayer?.pause()
currentVoiceBroadcastEventId?.let { playbackTracker.pausePlayback(it) } currentVoiceBroadcastId?.let { playbackTracker.pausePlayback(it) }
} }
fun stop() { fun stop() {
currentMediaPlayer?.stop() currentMediaPlayer?.stop()
currentVoiceBroadcastEventId?.let { playbackTracker.stopPlayback(it) } currentVoiceBroadcastId?.let { playbackTracker.stopPlayback(it) }
release(currentMediaPlayer) release(currentMediaPlayer)
playlist = emptyList() playlist = emptyList()
currentPlayingIndex = -1 currentPlayingIndex = -1
@ -96,7 +96,7 @@ class VoiceBroadcastPlayer @Inject constructor(
currentMediaPlayer = prepareMediaPlayer(content) currentMediaPlayer = prepareMediaPlayer(content)
currentMediaPlayer?.start() currentMediaPlayer?.start()
currentPlayingIndex = 0 currentPlayingIndex = 0
currentVoiceBroadcastEventId?.let { playbackTracker.startPlayback(it) } currentVoiceBroadcastId?.let { playbackTracker.startPlayback(it) }
prepareNextFile() prepareNextFile()
} catch (failure: Throwable) { } catch (failure: Throwable) {
Timber.e(failure, "Unable to start playback") Timber.e(failure, "Unable to start playback")
@ -107,7 +107,7 @@ class VoiceBroadcastPlayer @Inject constructor(
private fun resumePlayback() { private fun resumePlayback() {
currentMediaPlayer?.start() currentMediaPlayer?.start()
currentVoiceBroadcastEventId?.let { playbackTracker.startPlayback(it) } currentVoiceBroadcastId?.let { playbackTracker.startPlayback(it) }
} }
private suspend fun prepareNextFile() { private suspend fun prepareNextFile() {