@24i/smartapps-bigscreen-rnv-build-engine 0.17.4 → 0.17.5-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -282,6 +282,50 @@ class BridgeFromJavaScript(
282
282
  viewModel.subtitleTrack?.let { toJson(it) } ?: DISABLED_SUBTITLE_TRACK
283
283
  }
284
284
 
285
+ /*
286
+ Returns VIDEO track BITRATE, if not available returns null
287
+ */
288
+ @JavascriptInterface
289
+ fun bridgeJavaScriptToAndroid_GetBitrate(): Int? = runBlocking("bridgeJavaScriptToAndroid_GetBitrate") {
290
+ viewModel.videoTrack?.bitrate
291
+ }
292
+
293
+ /*
294
+ Returns VIDEO track RENDITION, if not available returns null
295
+ */
296
+ @JavascriptInterface
297
+ fun bridgeJavaScriptToAndroid_GetRendition(): String? = runBlocking("bridgeJavaScriptToAndroid_GetRendition") {
298
+ viewModel.videoTrack?.run {
299
+ return@runBlocking "${width}x${height}${formatBitrate(bitrate)}"
300
+ }
301
+ null
302
+ }
303
+
304
+ private fun formatBitrate(bitrate: Int): String {
305
+ return when {
306
+ bitrate <= 0 -> ""
307
+ bitrate < 1e3 -> "@${bitrate}bps"
308
+ bitrate < 1e6 -> "@${(bitrate / 1e3).roundToInt()}Kbps"
309
+ else -> "@${(bitrate / 1e4).roundToInt() / 1e2}Mbps"
310
+ }
311
+ }
312
+
313
+ /*
314
+ Returns AUDIO track CODEC, if not available returns null
315
+ */
316
+ @JavascriptInterface
317
+ fun bridgeJavaScriptToAndroid_GetAudioCodec(): String? = runBlocking("bridgeJavaScriptToAndroid_GetAudioCodec") {
318
+ viewModel.audioTrack?.codec
319
+ }
320
+
321
+ /*
322
+ Returns VIDEO track CODEC, if not available returns null
323
+ */
324
+ @JavascriptInterface
325
+ fun bridgeJavaScriptToAndroid_GetVideoCodec(): String? = runBlocking("bridgeJavaScriptToAndroid_GetVideoCodec") {
326
+ viewModel.videoTrack?.codec
327
+ }
328
+
285
329
  /*
286
330
  Set the cookies to localstorage
287
331
  */
@@ -68,6 +68,8 @@ class WebViewModel @Inject constructor(
68
68
 
69
69
  private var contentModel: ContentModel? = null
70
70
 
71
+ val videoTrack: VideoTrack?
72
+ get() = player?.selectedVideoTrack
71
73
  val audioTrack: AudioTrack?
72
74
  get() = player?.selectedAudioTrack
73
75
  val subtitleTrack: TextTrack?
@@ -355,6 +357,12 @@ class WebViewModel @Inject constructor(
355
357
  jsBridge.bridgeAndroidToJavaScript_ErrorEvent(MediaEventType.ERROR, "${event.error.message} - ${event.error.nativeCode}")
356
358
  stopPlayer()
357
359
  }
360
+ is LoadedMetadataEvent -> {
361
+ jsBridge.bridgeAndroidToJavaScript_MediaEvent(MediaEventType.LOADEDMETADATA)
362
+ }
363
+ is CanPlayEvent -> {
364
+ jsBridge.bridgeAndroidToJavaScript_MediaEvent(MediaEventType.CANPLAY)
365
+ }
358
366
  is EndedEvent -> {
359
367
  jsBridge.bridgeAndroidToJavaScript_MediaEvent(MediaEventType.ENDED)
360
368
  }
@@ -365,6 +373,9 @@ class WebViewModel @Inject constructor(
365
373
  view?.setBlackCurtainVisibility(View.GONE)
366
374
  jsBridge.bridgeAndroidToJavaScript_MediaEvent(MediaEventType.PLAYING)
367
375
  }
376
+ is SeekingEvent -> {
377
+ jsBridge.bridgeAndroidToJavaScript_MediaEvent(MediaEventType.SEEKING)
378
+ }
368
379
  is SeekedEvent -> {
369
380
  jsBridge.bridgeAndroidToJavaScript_MediaEvent(MediaEventType.SEEKED)
370
381
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@24i/smartapps-bigscreen-rnv-build-engine",
3
- "version": "0.17.4",
3
+ "version": "0.17.5-alpha.1",
4
4
  "description": "Package with build engine for SmartApps BIGscreen projects...",
5
5
  "main": "dist/src/index.js",
6
6
  "scripts": {