Skip to main content
Version: 11.8.0

How to measure the time-to-first-frame on Android

The time-to-first-frame, also known as the start-up time, is the time between the moment where playback is requested and the moment where the first frame is rendered.

To measure it, measure the time between the play event and the playing event.

Usage

var playEventRegisteredAt = 0L

val playListener = object : EventListener<PlayEvent> {
override fun handleEvent(event: PlayEvent) {
player.removeEventListener(PlayerEventTypes.PLAY, this)
playEventRegisteredAt = System.currentTimeMillis()
}
}

val playingListener = object : EventListener<PlayingEvent> {
override fun handleEvent(event: PlayingEvent) {
player.removeEventListener(PlayerEventTypes.PLAYING, this)
val timeToFirstFrame = System.currentTimeMillis() - playEventRegisteredAt
println("Time-to-first-frame: $timeToFirstFrame")
}
}

player.addEventListener(PlayerEventTypes.PLAY, playListener)
player.addEventListener(PlayerEventTypes.PLAYING, playingListener)