fun initPlayers()

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()
    }