in app/src/main/java/com/amazon/ivs/optimizations/ui/precaching/PreCachingViewModel.kt [36:77]
fun initPlayer(context: Context, playbackUrl: String?) {
if (playerView != null) {
playerView?.player?.load(Uri.parse(playbackUrl ?: STREAM_URI))
return
}
_onBuffering.tryEmit(true)
playerView = PlayerView(context).apply {
Timber.d("Initializing player and calling load()")
player.load(Uri.parse(playbackUrl ?: STREAM_URI))
setControlsEnabled(false)
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)
}
_onBuffering.tryEmit(false)
}
Player.State.PLAYING -> {
_onBuffering.tryEmit(false)
if (timeToVideo == null) {
timeToVideo = (Date().time - preferences.capturedClickTime).toInt()
}
}
else -> { /* Ignored */ }
}
},
{ exception ->
_onError.tryEmit(exception)
}
)
}
launchUpdates()
}