VoiceBroadcastPlayer - Improve currentVoiceBroadcastId
This commit is contained in:
parent
0c847cffc1
commit
fe44a829af
@ -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() {
|
||||||
|
Loading…
Reference in New Issue
Block a user