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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user