in app/src/main/java/com/amazon/ivs/optimizations/ui/rebuffertolive/RebufferToLiveViewModel.kt [34:70]
fun initPlayers(context: Context, surface: Surface, playbackUrl: String?) {
_onBuffering.tryEmit(true)
player = MediaPlayer(context)
playerListener = player!!.init(
{ videoSizeState ->
_onSizeChanged.tryEmit(videoSizeState)
},
{ state ->
when (state) {
Player.State.BUFFERING -> {
_onBuffering.tryEmit(true)
}
Player.State.READY -> {
player?.qualities?.firstOrNull { it.name == MAX_QUALITY }?.let { quality ->
player?.setAutoMaxQuality(quality)
}
}
Player.State.PLAYING -> {
_onBuffering.tryEmit(false)
if (timeToVideo == null) {
timeToVideo = (Date().time - preferences.capturedClickTime).toInt()
}
}
else -> { /* Ignored */ }
}
},
{ exception ->
_onError.tryEmit(exception)
}
)
player?.setRebufferToLive(REBUFFER_TO_LIVE)
player?.setSurface(surface)
player?.load(Uri.parse(playbackUrl ?: STREAM_URI))
player?.play()
launchUpdates()
}