in android/src/main/java/com/amazonaws/ivs/reactnative/player/AmazonIvsView.kt [351:394]
fun onPlayerStateChange(state: Player.State) {
val reactContext = context as ReactContext
when (state) {
Player.State.PLAYING -> {
if (!finishedLoading) {
val onLoadData = Arguments.createMap()
val parsedDuration = getDuration(player!!.duration);
onLoadData.putDouble("duration", parsedDuration)
finishedLoading = true
reactContext.getJSModule(RCTEventEmitter::class.java).receiveEvent(id, Events.LOAD.toString(), onLoadData)
}
}
Player.State.READY -> {
val data = Arguments.createMap()
val playerData = Arguments.createMap()
playerData.putString("version", player?.version)
playerData.putString("sessionId", player?.sessionId)
val qualities = Arguments.createArray()
for (quality in player!!.qualities) {
val parsedQuality = Arguments.createMap()
parsedQuality.putString("name", quality.name)
parsedQuality.putString("codecs", quality.codecs)
parsedQuality.putInt("bitrate", quality.bitrate)
parsedQuality.putDouble("framerate", quality.framerate.toDouble())
parsedQuality.putInt("width", quality.width)
parsedQuality.putInt("height", quality.height)
qualities.pushMap(parsedQuality)
}
playerData.putArray("qualities", qualities)
data.putMap("playerData", playerData)
reactContext.getJSModule(RCTEventEmitter::class.java).receiveEvent(id, Events.DATA.toString(), data)
}
else -> {}
}
val onStateChangeData = Arguments.createMap()
onStateChangeData.putString("state", mapPlayerState(state))
reactContext.getJSModule(RCTEventEmitter::class.java).receiveEvent(id, Events.STATE_CHANGED.toString(), onStateChangeData)
}