Add isPreparingNextPlayer flag
This commit is contained in:
parent
b87b2cbb63
commit
a3cd861e15
@ -65,6 +65,7 @@ class VoiceBroadcastPlayerImpl @Inject constructor(
|
|||||||
|
|
||||||
private var currentMediaPlayer: MediaPlayer? = null
|
private var currentMediaPlayer: MediaPlayer? = null
|
||||||
private var nextMediaPlayer: MediaPlayer? = null
|
private var nextMediaPlayer: MediaPlayer? = null
|
||||||
|
private var isPreparingNextPlayer: Boolean = false
|
||||||
|
|
||||||
private var currentVoiceBroadcastEvent: VoiceBroadcastEvent? = null
|
private var currentVoiceBroadcastEvent: VoiceBroadcastEvent? = null
|
||||||
|
|
||||||
@ -156,12 +157,12 @@ class VoiceBroadcastPlayerImpl @Inject constructor(
|
|||||||
private fun onPlaylistUpdated() {
|
private fun onPlaylistUpdated() {
|
||||||
when (playingState) {
|
when (playingState) {
|
||||||
State.PLAYING -> {
|
State.PLAYING -> {
|
||||||
if (nextMediaPlayer == null) {
|
if (nextMediaPlayer == null && !isPreparingNextPlayer) {
|
||||||
prepareNextMediaPlayer()
|
prepareNextMediaPlayer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
State.PAUSED -> {
|
State.PAUSED -> {
|
||||||
if (nextMediaPlayer == null) {
|
if (nextMediaPlayer == null && !isPreparingNextPlayer) {
|
||||||
prepareNextMediaPlayer()
|
prepareNextMediaPlayer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -223,17 +224,14 @@ class VoiceBroadcastPlayerImpl @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun prepareNextMediaPlayer() {
|
private fun prepareNextMediaPlayer() {
|
||||||
nextMediaPlayer = null
|
|
||||||
val nextItem = playlist.getNextItem()
|
val nextItem = playlist.getNextItem()
|
||||||
if (nextItem != null) {
|
if (nextItem != null) {
|
||||||
|
isPreparingNextPlayer = true
|
||||||
sessionScope.launch {
|
sessionScope.launch {
|
||||||
prepareMediaPlayer(nextContent) { mp ->
|
prepareMediaPlayer(nextItem.audioEvent.content) { mp ->
|
||||||
if (nextMediaPlayer == null) {
|
nextMediaPlayer = mp
|
||||||
nextMediaPlayer = mp
|
currentMediaPlayer?.setNextMediaPlayer(mp)
|
||||||
currentMediaPlayer?.setNextMediaPlayer(mp)
|
isPreparingNextPlayer = false
|
||||||
} else {
|
|
||||||
mp.release()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -274,6 +272,7 @@ class VoiceBroadcastPlayerImpl @Inject constructor(
|
|||||||
|
|
||||||
nextMediaPlayer?.release()
|
nextMediaPlayer?.release()
|
||||||
nextMediaPlayer = null
|
nextMediaPlayer = null
|
||||||
|
isPreparingNextPlayer = false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onPlayingStateChanged(playingState: State) {
|
private fun onPlayingStateChanged(playingState: State) {
|
||||||
|
Loading…
Reference in New Issue
Block a user