bitmovin-player-react-native 1.2.0 → 1.4.0

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.
Files changed (115) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/com/bitmovin/player/reactnative/PlayerModule.kt +47 -0
  4. package/android/src/main/java/com/bitmovin/player/reactnative/converter/JsonConverter.kt +32 -3
  5. package/build/adaptationConfig.d.ts +1 -1
  6. package/build/adaptationConfig.js.map +1 -1
  7. package/build/advertising.d.ts +54 -1
  8. package/build/advertising.d.ts.map +1 -1
  9. package/build/advertising.js.map +1 -1
  10. package/build/audioSession.d.ts +3 -3
  11. package/build/audioSession.js +2 -2
  12. package/build/audioSession.js.map +1 -1
  13. package/build/bitmovinCastManager.d.ts +3 -3
  14. package/build/bitmovinCastManager.js +2 -2
  15. package/build/bitmovinCastManager.js.map +1 -1
  16. package/build/bufferConfig.d.ts +2 -2
  17. package/build/bufferConfig.js.map +1 -1
  18. package/build/components/PlayerView/events.d.ts +16 -16
  19. package/build/components/PlayerView/events.js.map +1 -1
  20. package/build/components/PlayerView/nativeEvents.d.ts +16 -16
  21. package/build/components/PlayerView/nativeEvents.js.map +1 -1
  22. package/build/components/PlayerView/pictureInPictureConfig.d.ts +1 -1
  23. package/build/components/PlayerView/pictureInPictureConfig.js.map +1 -1
  24. package/build/components/PlayerView/playerViewConfig.d.ts +2 -2
  25. package/build/components/PlayerView/playerViewConfig.js.map +1 -1
  26. package/build/decoder/decoderConfig.d.ts +2 -2
  27. package/build/decoder/decoderConfig.js.map +1 -1
  28. package/build/drm/index.d.ts +2 -2
  29. package/build/drm/index.js.map +1 -1
  30. package/build/drm/widevineConfig.d.ts +5 -5
  31. package/build/drm/widevineConfig.js.map +1 -1
  32. package/build/events.d.ts +10 -10
  33. package/build/events.js.map +1 -1
  34. package/build/media.d.ts +4 -0
  35. package/build/media.d.ts.map +1 -1
  36. package/build/media.js.map +1 -1
  37. package/build/modules/PlayerModule.d.ts +12 -1
  38. package/build/modules/PlayerModule.d.ts.map +1 -1
  39. package/build/modules/PlayerModule.js.map +1 -1
  40. package/build/offline/offlineContentConfig.d.ts +1 -1
  41. package/build/offline/offlineContentConfig.js.map +1 -1
  42. package/build/offline/offlineContentManager.d.ts +2 -2
  43. package/build/offline/offlineContentManager.js +2 -2
  44. package/build/offline/offlineContentManager.js.map +1 -1
  45. package/build/offline/offlineContentManagerListener.d.ts +13 -13
  46. package/build/offline/offlineContentManagerListener.js +1 -1
  47. package/build/offline/offlineContentManagerListener.js.map +1 -1
  48. package/build/offline/offlineContentOptions.d.ts +2 -2
  49. package/build/offline/offlineContentOptions.js.map +1 -1
  50. package/build/offline/offlineDownloadRequest.d.ts +1 -1
  51. package/build/offline/offlineDownloadRequest.js.map +1 -1
  52. package/build/offline/offlineSourceOptions.d.ts +2 -2
  53. package/build/offline/offlineSourceOptions.js.map +1 -1
  54. package/build/offline/offlineState.d.ts +1 -1
  55. package/build/offline/offlineState.js +1 -1
  56. package/build/offline/offlineState.js.map +1 -1
  57. package/build/playbackConfig.d.ts +1 -1
  58. package/build/playbackConfig.js.map +1 -1
  59. package/build/player.d.ts +13 -11
  60. package/build/player.d.ts.map +1 -1
  61. package/build/player.js +42 -11
  62. package/build/player.js.map +1 -1
  63. package/build/source.d.ts +2 -2
  64. package/build/source.js +1 -1
  65. package/build/source.js.map +1 -1
  66. package/build/styleConfig.d.ts +5 -5
  67. package/build/styleConfig.js +1 -1
  68. package/build/styleConfig.js.map +1 -1
  69. package/build/subtitleFormat.d.ts +5 -5
  70. package/build/subtitleFormat.js +5 -5
  71. package/build/subtitleFormat.js.map +1 -1
  72. package/build/subtitleTrack.d.ts +1 -1
  73. package/build/subtitleTrack.js.map +1 -1
  74. package/build/tweaksConfig.d.ts +15 -15
  75. package/build/tweaksConfig.js.map +1 -1
  76. package/ios/FullscreenHandlerModule.swift +26 -3
  77. package/ios/LockedBox.swift +6 -0
  78. package/ios/PlayerModule.swift +40 -0
  79. package/ios/RCTConvert+BitmovinPlayer.swift +41 -0
  80. package/ios/RNBitmovinPlayer.podspec +1 -1
  81. package/package.json +1 -1
  82. package/plugin/build/withBitmovinConfig.js +8 -2
  83. package/plugin/src/withAppGradleDependencies.ts +24 -21
  84. package/plugin/src/withBitmovinAndroidConfig.ts +4 -1
  85. package/plugin/src/withBitmovinConfig.ts +12 -3
  86. package/plugin/src/withBitmovinIosConfig.ts +4 -1
  87. package/src/adaptationConfig.ts +1 -1
  88. package/src/advertising.ts +56 -1
  89. package/src/audioSession.ts +3 -3
  90. package/src/bitmovinCastManager.ts +3 -3
  91. package/src/bufferConfig.ts +2 -2
  92. package/src/components/PlayerView/events.ts +16 -16
  93. package/src/components/PlayerView/nativeEvents.ts +16 -16
  94. package/src/components/PlayerView/pictureInPictureConfig.ts +1 -1
  95. package/src/components/PlayerView/playerViewConfig.ts +2 -2
  96. package/src/decoder/decoderConfig.ts +2 -2
  97. package/src/drm/index.ts +2 -2
  98. package/src/drm/widevineConfig.ts +5 -5
  99. package/src/events.ts +10 -10
  100. package/src/media.ts +4 -0
  101. package/src/modules/PlayerModule.ts +18 -2
  102. package/src/offline/offlineContentConfig.ts +1 -1
  103. package/src/offline/offlineContentManager.ts +2 -2
  104. package/src/offline/offlineContentManagerListener.ts +13 -13
  105. package/src/offline/offlineContentOptions.ts +2 -2
  106. package/src/offline/offlineDownloadRequest.ts +1 -1
  107. package/src/offline/offlineSourceOptions.ts +2 -2
  108. package/src/offline/offlineState.ts +1 -1
  109. package/src/playbackConfig.ts +1 -1
  110. package/src/player.ts +47 -12
  111. package/src/source.ts +2 -2
  112. package/src/styleConfig.ts +5 -5
  113. package/src/subtitleFormat.ts +5 -5
  114. package/src/subtitleTrack.ts +1 -1
  115. package/src/tweaksConfig.ts +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/components/PlayerView/events.ts"],"names":[],"mappings":"","sourcesContent":["import {\n AdBreakFinishedEvent,\n AdBreakStartedEvent,\n AdClickedEvent,\n AdErrorEvent,\n AdFinishedEvent,\n AdManifestLoadedEvent,\n AdManifestLoadEvent,\n AdQuartileEvent,\n AdScheduledEvent,\n AdSkippedEvent,\n AdStartedEvent,\n CastAvailableEvent,\n CastPausedEvent,\n CastPlaybackFinishedEvent,\n CastPlayingEvent,\n CastStartedEvent,\n CastStartEvent,\n CastStoppedEvent,\n CastTimeUpdatedEvent,\n CastWaitingForDeviceEvent,\n DestroyEvent,\n Event,\n FullscreenEnabledEvent,\n FullscreenDisabledEvent,\n FullscreenEnterEvent,\n FullscreenExitEvent,\n MutedEvent,\n PausedEvent,\n PictureInPictureAvailabilityChangedEvent,\n PictureInPictureEnterEvent,\n PictureInPictureEnteredEvent,\n PictureInPictureExitEvent,\n PictureInPictureExitedEvent,\n PlaybackFinishedEvent,\n PlayerActiveEvent,\n PlayerErrorEvent,\n PlayerWarningEvent,\n PlayEvent,\n PlayingEvent,\n ReadyEvent,\n SeekedEvent,\n SeekEvent,\n TimeShiftEvent,\n TimeShiftedEvent,\n StallStartedEvent,\n StallEndedEvent,\n SourceErrorEvent,\n SourceLoadedEvent,\n SourceLoadEvent,\n SourceUnloadedEvent,\n SourceWarningEvent,\n AudioAddedEvent,\n AudioChangedEvent,\n AudioRemovedEvent,\n SubtitleAddedEvent,\n SubtitleChangedEvent,\n SubtitleRemovedEvent,\n TimeChangedEvent,\n UnmutedEvent,\n VideoPlaybackQualityChangedEvent,\n DownloadFinishedEvent,\n VideoDownloadQualityChangedEvent,\n PlaybackSpeedChangedEvent,\n CueEnterEvent,\n CueExitEvent,\n} from '../../events';\n\n/**\n * Event props for `PlayerView`.\n *\n * Note the events of `PlayerView` are simply a proxy over\n * the events from `NativePlayerView` just removing RN's bubbling data.\n */\nexport type PlayerViewEvents = {\n /**\n * Event emitted when an ad break has finished.\n */\n onAdBreakFinished?: (event: AdBreakFinishedEvent) => void;\n /**\n * Event emitted when an ad break has started.\n */\n onAdBreakStarted?: (event: AdBreakStartedEvent) => void;\n /**\n * Event emitted when an ad has been clicked.\n */\n onAdClicked?: (event: AdClickedEvent) => void;\n /**\n * Event emitted when an ad error has occurred.\n */\n onAdError?: (event: AdErrorEvent) => void;\n /**\n * Event emitted when an ad has finished.\n */\n onAdFinished?: (event: AdFinishedEvent) => void;\n /**\n * Event emitted when an ad manifest starts loading.\n */\n onAdManifestLoad?: (event: AdManifestLoadEvent) => void;\n /**\n * Event emitted when an ad manifest has been loaded.\n */\n onAdManifestLoaded?: (event: AdManifestLoadedEvent) => void;\n /**\n * Event emitted when an ad quartile has been reached.\n */\n onAdQuartile?: (event: AdQuartileEvent) => void;\n /**\n * Event emitted when an ad has been scheduled.\n */\n onAdScheduled?: (event: AdScheduledEvent) => void;\n /**\n * Event emitted when an ad has been skipped.\n */\n onAdSkipped?: (event: AdSkippedEvent) => void;\n /**\n * Event emitted when an ad has started.\n */\n onAdStarted?: (event: AdStartedEvent) => void;\n /**\n * Event emitted when casting to a cast-compatible device is available.\n *\n * @remarks Platform: iOS, Android\n */\n onCastAvailable?: (event: CastAvailableEvent) => void;\n /**\n * Event emitted when the playback on a cast-compatible device was paused.\n *\n * @remarks Platform: iOS, Android\n */\n onCastPaused?: (event: CastPausedEvent) => void;\n /**\n * Event emitted when the playback on a cast-compatible device has finished.\n *\n * @remarks Platform: iOS, Android\n */\n onCastPlaybackFinished?: (event: CastPlaybackFinishedEvent) => void;\n /**\n * Event emitted when playback on a cast-compatible device has started.\n *\n * @remarks Platform: iOS, Android\n */\n onCastPlaying?: (event: CastPlayingEvent) => void;\n /**\n * Event emitted when the cast app is launched successfully.\n *\n * @remarks Platform: iOS, Android\n */\n onCastStarted?: (event: CastStartedEvent) => void;\n /**\n * Event emitted when casting is initiated, but the user still needs to choose which device should be used.\n *\n * @remarks Platform: iOS, Android\n */\n onCastStart?: (event: CastStartEvent) => void;\n /**\n * Event emitted when casting to a cast-compatible device is stopped.\n *\n * @remarks Platform: iOS, Android\n */\n onCastStopped?: (event: CastStoppedEvent) => void;\n /**\n * Event emitted when the time update from the currently used cast-compatible device is received.\n *\n * @remarks Platform: iOS, Android\n */\n onCastTimeUpdated?: (event: CastTimeUpdatedEvent) => void;\n /**\n * Event emitted when a cast-compatible device has been chosen and the player is waiting for the device to get ready for\n * playback.\n *\n * @remarks Platform: iOS, Android\n */\n onCastWaitingForDevice?: (event: CastWaitingForDeviceEvent) => void;\n /**\n * Event emitted when a subtitle entry transitions into the active status.\n */\n onCueEnter?: (event: CueEnterEvent) => void;\n /**\n * Event emitted when an active subtitle entry transitions into the inactive status.\n */\n onCueExit?: (event: CueExitEvent) => void;\n /**\n * Event emitted when the player is destroyed.\n */\n onDestroy?: (event: DestroyEvent) => void;\n /**\n * Emitted when a download was finished.\n */\n onDownloadFinished?: (event: DownloadFinishedEvent) => void;\n /**\n * All events emitted by the player.\n */\n onEvent?: (event: Event) => void;\n /**\n * Event emitted when fullscreen mode has been enabled.\n *\n * @remarks Platform: iOS, Android\n */\n onFullscreenEnabled?: (event: FullscreenEnabledEvent) => void;\n /**\n * Event emitted when fullscreen mode has been disabled.\n *\n * @remarks Platform: iOS, Android\n */\n onFullscreenDisabled?: (event: FullscreenDisabledEvent) => void;\n /**\n * Event emitted when fullscreen mode has been entered.\n *\n * @remarks Platform: iOS, Android\n */\n onFullscreenEnter?: (event: FullscreenEnterEvent) => void;\n /**\n * Event emitted when fullscreen mode has been exited.\n *\n * @remarks Platform: iOS, Android\n */\n onFullscreenExit?: (event: FullscreenExitEvent) => void;\n /**\n * Event emitted when the player has been muted.\n */\n onMuted?: (event: MutedEvent) => void;\n /**\n * Event emitted when the player has been paused.\n */\n onPaused?: (event: PausedEvent) => void;\n /**\n * Event mitted when the availability of the Picture in Picture mode changed.\n */\n onPictureInPictureAvailabilityChanged?: (\n event: PictureInPictureAvailabilityChangedEvent\n ) => void;\n /**\n * Event emitted when the player enters Picture in Picture mode.\n */\n onPictureInPictureEnter?: (event: PictureInPictureEnterEvent) => void;\n /**\n * Event emitted when the player entered Picture in Picture mode.\n *\n * @remarks Platform: iOS\n */\n onPictureInPictureEntered?: (event: PictureInPictureEnteredEvent) => void;\n /**\n * Event emitted when the player exits Picture in Picture mode.\n */\n onPictureInPictureExit?: (event: PictureInPictureExitEvent) => void;\n /**\n * Event emitted when the player exited Picture in Picture mode.\n *\n * @remarks Platform: iOS\n */\n onPictureInPictureExited?: (event: PictureInPictureExitedEvent) => void;\n /**\n * Event emitted when the player received an intention to start/resume playback.\n */\n onPlay?: (event: PlayEvent) => void;\n /**\n * Event emitted when the playback of the current media has finished.\n */\n onPlaybackFinished?: (event: PlaybackFinishedEvent) => void;\n /**\n * Emitted when the player transitions from one playback speed to another.\n * @remarks Platform: iOS, tvOS\n */\n onPlaybackSpeedChanged?: (event: PlaybackSpeedChangedEvent) => void;\n /**\n * Event emitted when a source is loaded into the player.\n * Seeking and time shifting are allowed as soon as this event is seen.\n */\n onPlayerActive?: (event: PlayerActiveEvent) => void;\n /**\n * Event Emitted when a player error occurred.\n */\n onPlayerError?: (event: PlayerErrorEvent) => void;\n /**\n * Event emitted when a player warning occurred.\n */\n onPlayerWarning?: (event: PlayerWarningEvent) => void;\n /**\n * Emitted when playback has started.\n */\n onPlaying?: (event: PlayingEvent) => void;\n /**\n * Emitted when the player is ready for immediate playback, because initial audio/video\n * has been downloaded.\n */\n onReady?: (event: ReadyEvent) => void;\n /**\n * Event emitted when the player is about to seek to a new position.\n * Only applies to VoD streams.\n */\n onSeek?: (event: SeekEvent) => void;\n /**\n * Event emitted when seeking has finished and data to continue playback is available.\n * Only applies to VoD streams.\n */\n onSeeked?: (event: SeekedEvent) => void;\n /**\n * Event mitted when the player starts time shifting.\n * Only applies to live streams.\n */\n onTimeShift?: (event: TimeShiftEvent) => void;\n /**\n * Event emitted when time shifting has finished and data is available to continue playback.\n * Only applies to live streams.\n */\n onTimeShifted?: (event: TimeShiftedEvent) => void;\n /**\n * Event emitted when the player begins to stall and to buffer due to an empty buffer.\n */\n onStallStarted?: (event: StallStartedEvent) => void;\n /**\n * Event emitted when the player ends stalling, due to enough data in the buffer.\n */\n onStallEnded?: (event: StallEndedEvent) => void;\n /**\n * Event emitted when a source error occurred.\n */\n onSourceError?: (event: SourceErrorEvent) => void;\n /**\n * Event emitted when a new source loading has started.\n */\n onSourceLoad?: (event: SourceLoadEvent) => void;\n /**\n * Event emitted when a new source is loaded.\n * This does not mean that the source is immediately ready for playback.\n * `ReadyEvent` indicates the player is ready for immediate playback.\n */\n onSourceLoaded?: (event: SourceLoadedEvent) => void;\n /**\n * Event emitted when the current source has been unloaded.\n */\n onSourceUnloaded?: (event: SourceUnloadedEvent) => void;\n /**\n * Event emitted when a source warning occurred.\n */\n onSourceWarning?: (event: SourceWarningEvent) => void;\n /**\n * Event emitted when a new audio track is added to the player.\n */\n onAudioAdded?: (event: AudioAddedEvent) => void;\n /**\n * Event emitted when the player's selected audio track has changed.\n */\n onAudioChanged?: (event: AudioChangedEvent) => void;\n /**\n * Event emitted when an audio track is removed from the player.\n */\n onAudioRemoved?: (event: AudioRemovedEvent) => void;\n /**\n * Event emitted when a new subtitle track is added to the player.\n */\n onSubtitleAdded?: (event: SubtitleAddedEvent) => void;\n /**\n * Event emitted when the player's selected subtitle track has changed.\n */\n onSubtitleChanged?: (event: SubtitleChangedEvent) => void;\n /**\n * Event emitted when a subtitle track is removed from the player.\n */\n onSubtitleRemoved?: (event: SubtitleRemovedEvent) => void;\n /**\n * Event emitted when the current playback time has changed.\n */\n onTimeChanged?: (event: TimeChangedEvent) => void;\n /**\n * Emitted when the player is unmuted.\n */\n onUnmuted?: (event: UnmutedEvent) => void;\n /**\n * Emitted when current video download quality has changed.\n */\n onVideoDownloadQualityChanged?: (\n event: VideoDownloadQualityChangedEvent\n ) => void;\n /**\n * Emitted when the current video playback quality has changed.\n */\n onVideoPlaybackQualityChanged?: (\n event: VideoPlaybackQualityChangedEvent\n ) => void;\n};\n"]}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/components/PlayerView/events.ts"],"names":[],"mappings":"","sourcesContent":["import {\n AdBreakFinishedEvent,\n AdBreakStartedEvent,\n AdClickedEvent,\n AdErrorEvent,\n AdFinishedEvent,\n AdManifestLoadedEvent,\n AdManifestLoadEvent,\n AdQuartileEvent,\n AdScheduledEvent,\n AdSkippedEvent,\n AdStartedEvent,\n CastAvailableEvent,\n CastPausedEvent,\n CastPlaybackFinishedEvent,\n CastPlayingEvent,\n CastStartedEvent,\n CastStartEvent,\n CastStoppedEvent,\n CastTimeUpdatedEvent,\n CastWaitingForDeviceEvent,\n DestroyEvent,\n Event,\n FullscreenEnabledEvent,\n FullscreenDisabledEvent,\n FullscreenEnterEvent,\n FullscreenExitEvent,\n MutedEvent,\n PausedEvent,\n PictureInPictureAvailabilityChangedEvent,\n PictureInPictureEnterEvent,\n PictureInPictureEnteredEvent,\n PictureInPictureExitEvent,\n PictureInPictureExitedEvent,\n PlaybackFinishedEvent,\n PlayerActiveEvent,\n PlayerErrorEvent,\n PlayerWarningEvent,\n PlayEvent,\n PlayingEvent,\n ReadyEvent,\n SeekedEvent,\n SeekEvent,\n TimeShiftEvent,\n TimeShiftedEvent,\n StallStartedEvent,\n StallEndedEvent,\n SourceErrorEvent,\n SourceLoadedEvent,\n SourceLoadEvent,\n SourceUnloadedEvent,\n SourceWarningEvent,\n AudioAddedEvent,\n AudioChangedEvent,\n AudioRemovedEvent,\n SubtitleAddedEvent,\n SubtitleChangedEvent,\n SubtitleRemovedEvent,\n TimeChangedEvent,\n UnmutedEvent,\n VideoPlaybackQualityChangedEvent,\n DownloadFinishedEvent,\n VideoDownloadQualityChangedEvent,\n PlaybackSpeedChangedEvent,\n CueEnterEvent,\n CueExitEvent,\n} from '../../events';\n\n/**\n * Event props for `PlayerView`.\n *\n * Note the events of `PlayerView` are simply a proxy over\n * the events from `NativePlayerView` just removing RN's bubbling data.\n */\nexport type PlayerViewEvents = {\n /**\n * Event emitted when an ad break has finished.\n */\n onAdBreakFinished?: (event: AdBreakFinishedEvent) => void;\n /**\n * Event emitted when an ad break has started.\n */\n onAdBreakStarted?: (event: AdBreakStartedEvent) => void;\n /**\n * Event emitted when an ad has been clicked.\n */\n onAdClicked?: (event: AdClickedEvent) => void;\n /**\n * Event emitted when an ad error has occurred.\n */\n onAdError?: (event: AdErrorEvent) => void;\n /**\n * Event emitted when an ad has finished.\n */\n onAdFinished?: (event: AdFinishedEvent) => void;\n /**\n * Event emitted when an ad manifest starts loading.\n */\n onAdManifestLoad?: (event: AdManifestLoadEvent) => void;\n /**\n * Event emitted when an ad manifest has been loaded.\n */\n onAdManifestLoaded?: (event: AdManifestLoadedEvent) => void;\n /**\n * Event emitted when an ad quartile has been reached.\n */\n onAdQuartile?: (event: AdQuartileEvent) => void;\n /**\n * Event emitted when an ad has been scheduled.\n */\n onAdScheduled?: (event: AdScheduledEvent) => void;\n /**\n * Event emitted when an ad has been skipped.\n */\n onAdSkipped?: (event: AdSkippedEvent) => void;\n /**\n * Event emitted when an ad has started.\n */\n onAdStarted?: (event: AdStartedEvent) => void;\n /**\n * Event emitted when casting to a cast-compatible device is available.\n *\n * @platform iOS, Android\n */\n onCastAvailable?: (event: CastAvailableEvent) => void;\n /**\n * Event emitted when the playback on a cast-compatible device was paused.\n *\n * @platform iOS, Android\n */\n onCastPaused?: (event: CastPausedEvent) => void;\n /**\n * Event emitted when the playback on a cast-compatible device has finished.\n *\n * @platform iOS, Android\n */\n onCastPlaybackFinished?: (event: CastPlaybackFinishedEvent) => void;\n /**\n * Event emitted when playback on a cast-compatible device has started.\n *\n * @platform iOS, Android\n */\n onCastPlaying?: (event: CastPlayingEvent) => void;\n /**\n * Event emitted when the cast app is launched successfully.\n *\n * @platform iOS, Android\n */\n onCastStarted?: (event: CastStartedEvent) => void;\n /**\n * Event emitted when casting is initiated, but the user still needs to choose which device should be used.\n *\n * @platform iOS, Android\n */\n onCastStart?: (event: CastStartEvent) => void;\n /**\n * Event emitted when casting to a cast-compatible device is stopped.\n *\n * @platform iOS, Android\n */\n onCastStopped?: (event: CastStoppedEvent) => void;\n /**\n * Event emitted when the time update from the currently used cast-compatible device is received.\n *\n * @platform iOS, Android\n */\n onCastTimeUpdated?: (event: CastTimeUpdatedEvent) => void;\n /**\n * Event emitted when a cast-compatible device has been chosen and the player is waiting for the device to get ready for\n * playback.\n *\n * @platform iOS, Android\n */\n onCastWaitingForDevice?: (event: CastWaitingForDeviceEvent) => void;\n /**\n * Event emitted when a subtitle entry transitions into the active status.\n */\n onCueEnter?: (event: CueEnterEvent) => void;\n /**\n * Event emitted when an active subtitle entry transitions into the inactive status.\n */\n onCueExit?: (event: CueExitEvent) => void;\n /**\n * Event emitted when the player is destroyed.\n */\n onDestroy?: (event: DestroyEvent) => void;\n /**\n * Emitted when a download was finished.\n */\n onDownloadFinished?: (event: DownloadFinishedEvent) => void;\n /**\n * All events emitted by the player.\n */\n onEvent?: (event: Event) => void;\n /**\n * Event emitted when fullscreen mode has been enabled.\n *\n * @platform iOS, Android\n */\n onFullscreenEnabled?: (event: FullscreenEnabledEvent) => void;\n /**\n * Event emitted when fullscreen mode has been disabled.\n *\n * @platform iOS, Android\n */\n onFullscreenDisabled?: (event: FullscreenDisabledEvent) => void;\n /**\n * Event emitted when fullscreen mode has been entered.\n *\n * @platform iOS, Android\n */\n onFullscreenEnter?: (event: FullscreenEnterEvent) => void;\n /**\n * Event emitted when fullscreen mode has been exited.\n *\n * @platform iOS, Android\n */\n onFullscreenExit?: (event: FullscreenExitEvent) => void;\n /**\n * Event emitted when the player has been muted.\n */\n onMuted?: (event: MutedEvent) => void;\n /**\n * Event emitted when the player has been paused.\n */\n onPaused?: (event: PausedEvent) => void;\n /**\n * Event mitted when the availability of the Picture in Picture mode changed.\n */\n onPictureInPictureAvailabilityChanged?: (\n event: PictureInPictureAvailabilityChangedEvent\n ) => void;\n /**\n * Event emitted when the player enters Picture in Picture mode.\n */\n onPictureInPictureEnter?: (event: PictureInPictureEnterEvent) => void;\n /**\n * Event emitted when the player entered Picture in Picture mode.\n *\n * @platform iOS\n */\n onPictureInPictureEntered?: (event: PictureInPictureEnteredEvent) => void;\n /**\n * Event emitted when the player exits Picture in Picture mode.\n */\n onPictureInPictureExit?: (event: PictureInPictureExitEvent) => void;\n /**\n * Event emitted when the player exited Picture in Picture mode.\n *\n * @platform iOS\n */\n onPictureInPictureExited?: (event: PictureInPictureExitedEvent) => void;\n /**\n * Event emitted when the player received an intention to start/resume playback.\n */\n onPlay?: (event: PlayEvent) => void;\n /**\n * Event emitted when the playback of the current media has finished.\n */\n onPlaybackFinished?: (event: PlaybackFinishedEvent) => void;\n /**\n * Emitted when the player transitions from one playback speed to another.\n * @platform iOS, tvOS\n */\n onPlaybackSpeedChanged?: (event: PlaybackSpeedChangedEvent) => void;\n /**\n * Event emitted when a source is loaded into the player.\n * Seeking and time shifting are allowed as soon as this event is seen.\n */\n onPlayerActive?: (event: PlayerActiveEvent) => void;\n /**\n * Event Emitted when a player error occurred.\n */\n onPlayerError?: (event: PlayerErrorEvent) => void;\n /**\n * Event emitted when a player warning occurred.\n */\n onPlayerWarning?: (event: PlayerWarningEvent) => void;\n /**\n * Emitted when playback has started.\n */\n onPlaying?: (event: PlayingEvent) => void;\n /**\n * Emitted when the player is ready for immediate playback, because initial audio/video\n * has been downloaded.\n */\n onReady?: (event: ReadyEvent) => void;\n /**\n * Event emitted when the player is about to seek to a new position.\n * Only applies to VoD streams.\n */\n onSeek?: (event: SeekEvent) => void;\n /**\n * Event emitted when seeking has finished and data to continue playback is available.\n * Only applies to VoD streams.\n */\n onSeeked?: (event: SeekedEvent) => void;\n /**\n * Event mitted when the player starts time shifting.\n * Only applies to live streams.\n */\n onTimeShift?: (event: TimeShiftEvent) => void;\n /**\n * Event emitted when time shifting has finished and data is available to continue playback.\n * Only applies to live streams.\n */\n onTimeShifted?: (event: TimeShiftedEvent) => void;\n /**\n * Event emitted when the player begins to stall and to buffer due to an empty buffer.\n */\n onStallStarted?: (event: StallStartedEvent) => void;\n /**\n * Event emitted when the player ends stalling, due to enough data in the buffer.\n */\n onStallEnded?: (event: StallEndedEvent) => void;\n /**\n * Event emitted when a source error occurred.\n */\n onSourceError?: (event: SourceErrorEvent) => void;\n /**\n * Event emitted when a new source loading has started.\n */\n onSourceLoad?: (event: SourceLoadEvent) => void;\n /**\n * Event emitted when a new source is loaded.\n * This does not mean that the source is immediately ready for playback.\n * `ReadyEvent` indicates the player is ready for immediate playback.\n */\n onSourceLoaded?: (event: SourceLoadedEvent) => void;\n /**\n * Event emitted when the current source has been unloaded.\n */\n onSourceUnloaded?: (event: SourceUnloadedEvent) => void;\n /**\n * Event emitted when a source warning occurred.\n */\n onSourceWarning?: (event: SourceWarningEvent) => void;\n /**\n * Event emitted when a new audio track is added to the player.\n */\n onAudioAdded?: (event: AudioAddedEvent) => void;\n /**\n * Event emitted when the player's selected audio track has changed.\n */\n onAudioChanged?: (event: AudioChangedEvent) => void;\n /**\n * Event emitted when an audio track is removed from the player.\n */\n onAudioRemoved?: (event: AudioRemovedEvent) => void;\n /**\n * Event emitted when a new subtitle track is added to the player.\n */\n onSubtitleAdded?: (event: SubtitleAddedEvent) => void;\n /**\n * Event emitted when the player's selected subtitle track has changed.\n */\n onSubtitleChanged?: (event: SubtitleChangedEvent) => void;\n /**\n * Event emitted when a subtitle track is removed from the player.\n */\n onSubtitleRemoved?: (event: SubtitleRemovedEvent) => void;\n /**\n * Event emitted when the current playback time has changed.\n */\n onTimeChanged?: (event: TimeChangedEvent) => void;\n /**\n * Emitted when the player is unmuted.\n */\n onUnmuted?: (event: UnmutedEvent) => void;\n /**\n * Emitted when current video download quality has changed.\n */\n onVideoDownloadQualityChanged?: (\n event: VideoDownloadQualityChangedEvent\n ) => void;\n /**\n * Emitted when the current video playback quality has changed.\n */\n onVideoPlaybackQualityChanged?: (\n event: VideoPlaybackQualityChangedEvent\n ) => void;\n};\n"]}
@@ -72,7 +72,7 @@ export type NativePlayerViewEvents = {
72
72
  /**
73
73
  * Event emitted when casting to a cast-compatible device is available.
74
74
  *
75
- * @remarks Platform: iOS, Android
75
+ * @platform iOS, Android
76
76
  */
77
77
  onBmpCastAvailable?: (event: {
78
78
  nativeEvent: CastAvailableEvent;
@@ -80,7 +80,7 @@ export type NativePlayerViewEvents = {
80
80
  /**
81
81
  * Event emitted when the playback on a cast-compatible device was paused.
82
82
  *
83
- * @remarks Platform: iOS, Android
83
+ * @platform iOS, Android
84
84
  */
85
85
  onBmpCastPaused?: (event: {
86
86
  nativeEvent: CastPausedEvent;
@@ -88,7 +88,7 @@ export type NativePlayerViewEvents = {
88
88
  /**
89
89
  * Event emitted when the playback on a cast-compatible device has finished.
90
90
  *
91
- * @remarks Platform: iOS, Android
91
+ * @platform iOS, Android
92
92
  */
93
93
  onBmpCastPlaybackFinished?: (event: {
94
94
  nativeEvent: CastPlaybackFinishedEvent;
@@ -96,7 +96,7 @@ export type NativePlayerViewEvents = {
96
96
  /**
97
97
  * Event emitted when playback on a cast-compatible device has started.
98
98
  *
99
- * @remarks Platform: iOS, Android
99
+ * @platform iOS, Android
100
100
  */
101
101
  onBmpCastPlaying?: (event: {
102
102
  nativeEvent: CastPlayingEvent;
@@ -104,7 +104,7 @@ export type NativePlayerViewEvents = {
104
104
  /**
105
105
  * Event emitted when the cast app is launched successfully.
106
106
  *
107
- * @remarks Platform: iOS, Android
107
+ * @platform iOS, Android
108
108
  */
109
109
  onBmpCastStarted?: (event: {
110
110
  nativeEvent: CastStartedEvent;
@@ -112,7 +112,7 @@ export type NativePlayerViewEvents = {
112
112
  /**
113
113
  * Event emitted when casting is initiated, but the user still needs to choose which device should be used.
114
114
  *
115
- * @remarks Platform: iOS, Android
115
+ * @platform iOS, Android
116
116
  */
117
117
  onBmpCastStart?: (event: {
118
118
  nativeEvent: CastStartEvent;
@@ -120,7 +120,7 @@ export type NativePlayerViewEvents = {
120
120
  /**
121
121
  * Event emitted when casting to a cast-compatible device is stopped.
122
122
  *
123
- * @remarks Platform: iOS, Android
123
+ * @platform iOS, Android
124
124
  */
125
125
  onBmpCastStopped?: (event: {
126
126
  nativeEvent: CastStoppedEvent;
@@ -128,7 +128,7 @@ export type NativePlayerViewEvents = {
128
128
  /**
129
129
  * Event emitted when the time update from the currently used cast-compatible device is received.
130
130
  *
131
- * @remarks Platform: iOS, Android
131
+ * @platform iOS, Android
132
132
  */
133
133
  onBmpCastTimeUpdated?: (event: {
134
134
  nativeEvent: CastTimeUpdatedEvent;
@@ -137,7 +137,7 @@ export type NativePlayerViewEvents = {
137
137
  * Event emitted when a cast-compatible device has been chosen and the player is waiting for the device to get ready for
138
138
  * playback.
139
139
  *
140
- * @remarks Platform: iOS, Android
140
+ * @platform iOS, Android
141
141
  */
142
142
  onBmpCastWaitingForDevice?: (event: {
143
143
  nativeEvent: CastWaitingForDeviceEvent;
@@ -175,7 +175,7 @@ export type NativePlayerViewEvents = {
175
175
  /**
176
176
  * Event emitted when fullscreen mode has been enabled.
177
177
  *
178
- * @remarks Platform: iOS, Android
178
+ * @platform iOS, Android
179
179
  */
180
180
  onBmpFullscreenEnabled?: (event: {
181
181
  nativeEvent: FullscreenEnabledEvent;
@@ -183,7 +183,7 @@ export type NativePlayerViewEvents = {
183
183
  /**
184
184
  * Event emitted when fullscreen mode has been disabled.
185
185
  *
186
- * @remarks Platform: iOS, Android
186
+ * @platform iOS, Android
187
187
  */
188
188
  onBmpFullscreenDisabled?: (event: {
189
189
  nativeEvent: FullscreenDisabledEvent;
@@ -191,7 +191,7 @@ export type NativePlayerViewEvents = {
191
191
  /**
192
192
  * Event emitted when fullscreen mode has been entered.
193
193
  *
194
- * @remarks Platform: iOS, Android
194
+ * @platform iOS, Android
195
195
  */
196
196
  onBmpFullscreenEnter?: (event: {
197
197
  nativeEvent: FullscreenEnterEvent;
@@ -199,7 +199,7 @@ export type NativePlayerViewEvents = {
199
199
  /**
200
200
  * Event emitted when fullscreen mode has been exited.
201
201
  *
202
- * @remarks Platform: iOS, Android
202
+ * @platform iOS, Android
203
203
  */
204
204
  onBmpFullscreenExit?: (event: {
205
205
  nativeEvent: FullscreenExitEvent;
@@ -231,7 +231,7 @@ export type NativePlayerViewEvents = {
231
231
  /**
232
232
  * Event emitted when the player entered Picture in Picture mode.
233
233
  *
234
- * @remarks Platform: iOS
234
+ * @platform iOS
235
235
  */
236
236
  onBmpPictureInPictureEntered?: (event: {
237
237
  nativeEvent: PictureInPictureEnteredEvent;
@@ -245,7 +245,7 @@ export type NativePlayerViewEvents = {
245
245
  /**
246
246
  * Event emitted when the player exited Picture in Picture mode.
247
247
  *
248
- * @remarks Platform: iOS
248
+ * @platform iOS
249
249
  */
250
250
  onBmpPictureInPictureExited?: (event: {
251
251
  nativeEvent: PictureInPictureExitedEvent;
@@ -264,7 +264,7 @@ export type NativePlayerViewEvents = {
264
264
  }) => void;
265
265
  /**
266
266
  * Emitted when the player transitions from one playback speed to another.
267
- * @remarks Platform: iOS, tvOS
267
+ * @platform iOS, tvOS
268
268
  */
269
269
  onBmpPlaybackSpeedChanged?: (event: {
270
270
  nativeEvent: PlaybackSpeedChangedEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"nativeEvents.js","sourceRoot":"","sources":["../../../src/components/PlayerView/nativeEvents.ts"],"names":[],"mappings":"","sourcesContent":["import {\n AdBreakFinishedEvent,\n AdBreakStartedEvent,\n AdClickedEvent,\n AdErrorEvent,\n AdFinishedEvent,\n AdManifestLoadedEvent,\n AdManifestLoadEvent,\n AdQuartileEvent,\n AdScheduledEvent,\n AdSkippedEvent,\n AdStartedEvent,\n CastAvailableEvent,\n CastPausedEvent,\n CastPlaybackFinishedEvent,\n CastPlayingEvent,\n CastStartedEvent,\n CastStartEvent,\n CastStoppedEvent,\n CastTimeUpdatedEvent,\n CastWaitingForDeviceEvent,\n DestroyEvent,\n Event,\n FullscreenEnabledEvent,\n FullscreenDisabledEvent,\n FullscreenEnterEvent,\n FullscreenExitEvent,\n MutedEvent,\n PausedEvent,\n PictureInPictureAvailabilityChangedEvent,\n PictureInPictureEnterEvent,\n PictureInPictureEnteredEvent,\n PictureInPictureExitEvent,\n PictureInPictureExitedEvent,\n PlaybackFinishedEvent,\n PlayerActiveEvent,\n PlayerErrorEvent,\n PlayerWarningEvent,\n PlayEvent,\n PlayingEvent,\n ReadyEvent,\n SeekedEvent,\n SeekEvent,\n TimeShiftEvent,\n TimeShiftedEvent,\n StallStartedEvent,\n StallEndedEvent,\n SourceErrorEvent,\n SourceLoadedEvent,\n SourceLoadEvent,\n SourceUnloadedEvent,\n SourceWarningEvent,\n AudioAddedEvent,\n AudioChangedEvent,\n AudioRemovedEvent,\n SubtitleAddedEvent,\n SubtitleChangedEvent,\n SubtitleRemovedEvent,\n TimeChangedEvent,\n UnmutedEvent,\n VideoPlaybackQualityChangedEvent,\n DownloadFinishedEvent,\n VideoDownloadQualityChangedEvent,\n PlaybackSpeedChangedEvent,\n CueEnterEvent,\n CueExitEvent,\n} from '../../events';\n\n/**\n * Event props for `NativePlayerView`.\n */\nexport type NativePlayerViewEvents = {\n /**\n * Event emitted when an ad break has finished.\n */\n onBmpAdBreakFinished?: (event: { nativeEvent: AdBreakFinishedEvent }) => void;\n /**\n * Event emitted when an ad break has started.\n */\n onBmpAdBreakStarted?: (event: { nativeEvent: AdBreakStartedEvent }) => void;\n /**\n * Event emitted when an ad has been clicked.\n */\n onBmpAdClicked?: (event: { nativeEvent: AdClickedEvent }) => void;\n /**\n * Event emitted when an ad error has occurred.\n */\n onBmpAdError?: (event: { nativeEvent: AdErrorEvent }) => void;\n /**\n * Event emitted when an ad has finished.\n */\n onBmpAdFinished?: (event: { nativeEvent: AdFinishedEvent }) => void;\n /**\n * Event emitted when an ad manifest starts loading.\n */\n onBmpAdManifestLoad?: (event: { nativeEvent: AdManifestLoadEvent }) => void;\n /**\n * Event emitted when an ad manifest has been loaded.\n */\n onBmpAdManifestLoaded?: (event: {\n nativeEvent: AdManifestLoadedEvent;\n }) => void;\n /**\n * Event emitted when an ad quartile has been reached.\n */\n onBmpAdQuartile?: (event: { nativeEvent: AdQuartileEvent }) => void;\n /**\n * Event emitted when an ad has been scheduled.\n */\n onBmpAdScheduled?: (event: { nativeEvent: AdScheduledEvent }) => void;\n /**\n * Event emitted when an ad has been skipped.\n */\n onBmpAdSkipped?: (event: { nativeEvent: AdSkippedEvent }) => void;\n /**\n * Event emitted when an ad has started.\n */\n onBmpAdStarted?: (event: { nativeEvent: AdStartedEvent }) => void;\n /**\n * Event emitted when casting to a cast-compatible device is available.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpCastAvailable?: (event: { nativeEvent: CastAvailableEvent }) => void;\n /**\n * Event emitted when the playback on a cast-compatible device was paused.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpCastPaused?: (event: { nativeEvent: CastPausedEvent }) => void;\n /**\n * Event emitted when the playback on a cast-compatible device has finished.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpCastPlaybackFinished?: (event: {\n nativeEvent: CastPlaybackFinishedEvent;\n }) => void;\n /**\n * Event emitted when playback on a cast-compatible device has started.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpCastPlaying?: (event: { nativeEvent: CastPlayingEvent }) => void;\n /**\n * Event emitted when the cast app is launched successfully.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpCastStarted?: (event: { nativeEvent: CastStartedEvent }) => void;\n /**\n * Event emitted when casting is initiated, but the user still needs to choose which device should be used.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpCastStart?: (event: { nativeEvent: CastStartEvent }) => void;\n /**\n * Event emitted when casting to a cast-compatible device is stopped.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpCastStopped?: (event: { nativeEvent: CastStoppedEvent }) => void;\n /**\n * Event emitted when the time update from the currently used cast-compatible device is received.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpCastTimeUpdated?: (event: { nativeEvent: CastTimeUpdatedEvent }) => void;\n /**\n * Event emitted when a cast-compatible device has been chosen and the player is waiting for the device to get ready for\n * playback.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpCastWaitingForDevice?: (event: {\n nativeEvent: CastWaitingForDeviceEvent;\n }) => void;\n /**\n * Event emitted when a subtitle entry transitions into the active status.\n */\n onBmpCueEnter?: (event: { nativeEvent: CueEnterEvent }) => void;\n /**\n * Event emitted when an active subtitle entry transitions into the inactive status.\n */\n onBmpCueExit?: (event: { nativeEvent: CueExitEvent }) => void;\n /**\n * Event emitted when the player is destroyed.\n */\n onBmpDestroy?: (event: { nativeEvent: DestroyEvent }) => void;\n /**\n * Emitted when a download was finished.\n */\n onBmpDownloadFinished?: (event: {\n nativeEvent: DownloadFinishedEvent;\n }) => void;\n /**\n * All events emitted by the player.\n */\n onBmpEvent?: (event: { nativeEvent: Event }) => void;\n /**\n * Event emitted when fullscreen mode has been enabled.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpFullscreenEnabled?: (event: {\n nativeEvent: FullscreenEnabledEvent;\n }) => void;\n /**\n * Event emitted when fullscreen mode has been disabled.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpFullscreenDisabled?: (event: {\n nativeEvent: FullscreenDisabledEvent;\n }) => void;\n /**\n * Event emitted when fullscreen mode has been entered.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpFullscreenEnter?: (event: { nativeEvent: FullscreenEnterEvent }) => void;\n /**\n * Event emitted when fullscreen mode has been exited.\n *\n * @remarks Platform: iOS, Android\n */\n onBmpFullscreenExit?: (event: { nativeEvent: FullscreenExitEvent }) => void;\n /**\n * Event emitted when the player has been muted.\n */\n onBmpMuted?: (event: { nativeEvent: MutedEvent }) => void;\n /**\n * Event emitted when the player has been paused.\n */\n onBmpPaused?: (event: { nativeEvent: PausedEvent }) => void;\n /**\n * Event mitted when the availability of the Picture in Picture mode changed.\n */\n onBmpPictureInPictureAvailabilityChanged?: (event: {\n nativeEvent: PictureInPictureAvailabilityChangedEvent;\n }) => void;\n /**\n * Event emitted when the player enters Picture in Picture mode.\n */\n onBmpPictureInPictureEnter?: (event: {\n nativeEvent: PictureInPictureEnterEvent;\n }) => void;\n /**\n * Event emitted when the player entered Picture in Picture mode.\n *\n * @remarks Platform: iOS\n */\n onBmpPictureInPictureEntered?: (event: {\n nativeEvent: PictureInPictureEnteredEvent;\n }) => void;\n /**\n * Event emitted when the player exits Picture in Picture mode.\n */\n onBmpPictureInPictureExit?: (event: {\n nativeEvent: PictureInPictureExitEvent;\n }) => void;\n /**\n * Event emitted when the player exited Picture in Picture mode.\n *\n * @remarks Platform: iOS\n */\n onBmpPictureInPictureExited?: (event: {\n nativeEvent: PictureInPictureExitedEvent;\n }) => void;\n /**\n * Event emitted when the player received an intention to start/resume playback.\n */\n onBmpPlay?: (event: { nativeEvent: PlayEvent }) => void;\n /**\n * Event emitted when the playback of the current media has finished.\n */\n onBmpPlaybackFinished?: (event: {\n nativeEvent: PlaybackFinishedEvent;\n }) => void;\n /**\n * Emitted when the player transitions from one playback speed to another.\n * @remarks Platform: iOS, tvOS\n */\n onBmpPlaybackSpeedChanged?: (event: {\n nativeEvent: PlaybackSpeedChangedEvent;\n }) => void;\n /**\n * Event emitted when a source is loaded into the player.\n * Seeking and time shifting are allowed as soon as this event is seen.\n */\n onBmpPlayerActive?: (event: { nativeEvent: PlayerActiveEvent }) => void;\n /**\n * Event Emitted when a player error occurred.\n */\n onBmpPlayerError?: (event: { nativeEvent: PlayerErrorEvent }) => void;\n /**\n * Event emitted when a player warning occurred.\n */\n onBmpPlayerWarning?: (event: { nativeEvent: PlayerWarningEvent }) => void;\n /**\n * Emitted when playback has started.\n */\n onBmpPlaying?: (event: { nativeEvent: PlayingEvent }) => void;\n /**\n * Emitted when the player is ready for immediate playback, because initial audio/video\n * has been downloaded.\n */\n onBmpReady?: (event: { nativeEvent: ReadyEvent }) => void;\n /**\n * Event emitted when the player is about to seek to a new position.\n * Only applies to VoD streams.\n */\n onBmpSeek?: (event: { nativeEvent: SeekEvent }) => void;\n /**\n * Event emitted when seeking has finished and data to continue playback is available.\n * Only applies to VoD streams.\n */\n onBmpSeeked?: (event: { nativeEvent: SeekedEvent }) => void;\n /**\n * Event mitted when the player starts time shifting.\n * Only applies to live streams.\n */\n onBmpTimeShift?: (event: { nativeEvent: TimeShiftEvent }) => void;\n /**\n * Event emitted when time shifting has finished and data is available to continue playback.\n * Only applies to live streams.\n */\n onBmpTimeShifted?: (event: { nativeEvent: TimeShiftedEvent }) => void;\n /**\n * Event emitted when the player begins to stall and to buffer due to an empty buffer.\n */\n onBmpStallStarted?: (event: { nativeEvent: StallStartedEvent }) => void;\n /**\n * Event emitted when the player ends stalling, due to enough data in the buffer.\n */\n onBmpStallEnded?: (event: { nativeEvent: StallEndedEvent }) => void;\n /**\n * Event emitted when a source error occurred.\n */\n onBmpSourceError?: (event: { nativeEvent: SourceErrorEvent }) => void;\n /**\n * Event emitted when a new source loading has started.\n */\n onBmpSourceLoad?: (event: { nativeEvent: SourceLoadEvent }) => void;\n /**\n * Event emitted when a new source is loaded.\n * This does not mean that the source is immediately ready for playback.\n * `ReadyEvent` indicates the player is ready for immediate playback.\n */\n onBmpSourceLoaded?: (event: { nativeEvent: SourceLoadedEvent }) => void;\n /**\n * Event emitted when the current source has been unloaded.\n */\n onBmpSourceUnloaded?: (event: { nativeEvent: SourceUnloadedEvent }) => void;\n /**\n * Event emitted when a source warning occurred.\n */\n onBmpSourceWarning?: (event: { nativeEvent: SourceWarningEvent }) => void;\n /**\n * Event emitted when a new audio track is added to the player.\n */\n onBmpAudioAdded?: (event: { nativeEvent: AudioAddedEvent }) => void;\n /**\n * Event emitted when the player's selected audio track has changed.\n */\n onBmpAudioChanged?: (event: { nativeEvent: AudioChangedEvent }) => void;\n /**\n * Event emitted when an audio track is removed from the player.\n */\n onBmpAudioRemoved?: (event: { nativeEvent: AudioRemovedEvent }) => void;\n /**\n * Event emitted when a new subtitle track is added to the player.\n */\n onBmpSubtitleAdded?: (event: { nativeEvent: SubtitleAddedEvent }) => void;\n /**\n * Event emitted when the player's selected subtitle track has changed.\n */\n onBmpSubtitleChanged?: (event: { nativeEvent: SubtitleChangedEvent }) => void;\n /**\n * Event emitted when a subtitle track is removed from the player.\n */\n onBmpSubtitleRemoved?: (event: { nativeEvent: SubtitleRemovedEvent }) => void;\n /**\n * Event emitted when the current playback time has changed.\n */\n onBmpTimeChanged?: (event: { nativeEvent: TimeChangedEvent }) => void;\n /**\n * Emitted when the player is unmuted.\n */\n onBmpUnmuted?: (event: { nativeEvent: UnmutedEvent }) => void;\n /**\n * Emitted when current video download quality has changed.\n */\n onBmpVideoDownloadQualityChanged?: (event: {\n nativeEvent: VideoDownloadQualityChangedEvent;\n }) => void;\n /**\n * Emitted when the current video playback quality has changed.\n */\n onBmpVideoPlaybackQualityChanged?: (event: {\n nativeEvent: VideoPlaybackQualityChangedEvent;\n }) => void;\n};\n"]}
1
+ {"version":3,"file":"nativeEvents.js","sourceRoot":"","sources":["../../../src/components/PlayerView/nativeEvents.ts"],"names":[],"mappings":"","sourcesContent":["import {\n AdBreakFinishedEvent,\n AdBreakStartedEvent,\n AdClickedEvent,\n AdErrorEvent,\n AdFinishedEvent,\n AdManifestLoadedEvent,\n AdManifestLoadEvent,\n AdQuartileEvent,\n AdScheduledEvent,\n AdSkippedEvent,\n AdStartedEvent,\n CastAvailableEvent,\n CastPausedEvent,\n CastPlaybackFinishedEvent,\n CastPlayingEvent,\n CastStartedEvent,\n CastStartEvent,\n CastStoppedEvent,\n CastTimeUpdatedEvent,\n CastWaitingForDeviceEvent,\n DestroyEvent,\n Event,\n FullscreenEnabledEvent,\n FullscreenDisabledEvent,\n FullscreenEnterEvent,\n FullscreenExitEvent,\n MutedEvent,\n PausedEvent,\n PictureInPictureAvailabilityChangedEvent,\n PictureInPictureEnterEvent,\n PictureInPictureEnteredEvent,\n PictureInPictureExitEvent,\n PictureInPictureExitedEvent,\n PlaybackFinishedEvent,\n PlayerActiveEvent,\n PlayerErrorEvent,\n PlayerWarningEvent,\n PlayEvent,\n PlayingEvent,\n ReadyEvent,\n SeekedEvent,\n SeekEvent,\n TimeShiftEvent,\n TimeShiftedEvent,\n StallStartedEvent,\n StallEndedEvent,\n SourceErrorEvent,\n SourceLoadedEvent,\n SourceLoadEvent,\n SourceUnloadedEvent,\n SourceWarningEvent,\n AudioAddedEvent,\n AudioChangedEvent,\n AudioRemovedEvent,\n SubtitleAddedEvent,\n SubtitleChangedEvent,\n SubtitleRemovedEvent,\n TimeChangedEvent,\n UnmutedEvent,\n VideoPlaybackQualityChangedEvent,\n DownloadFinishedEvent,\n VideoDownloadQualityChangedEvent,\n PlaybackSpeedChangedEvent,\n CueEnterEvent,\n CueExitEvent,\n} from '../../events';\n\n/**\n * Event props for `NativePlayerView`.\n */\nexport type NativePlayerViewEvents = {\n /**\n * Event emitted when an ad break has finished.\n */\n onBmpAdBreakFinished?: (event: { nativeEvent: AdBreakFinishedEvent }) => void;\n /**\n * Event emitted when an ad break has started.\n */\n onBmpAdBreakStarted?: (event: { nativeEvent: AdBreakStartedEvent }) => void;\n /**\n * Event emitted when an ad has been clicked.\n */\n onBmpAdClicked?: (event: { nativeEvent: AdClickedEvent }) => void;\n /**\n * Event emitted when an ad error has occurred.\n */\n onBmpAdError?: (event: { nativeEvent: AdErrorEvent }) => void;\n /**\n * Event emitted when an ad has finished.\n */\n onBmpAdFinished?: (event: { nativeEvent: AdFinishedEvent }) => void;\n /**\n * Event emitted when an ad manifest starts loading.\n */\n onBmpAdManifestLoad?: (event: { nativeEvent: AdManifestLoadEvent }) => void;\n /**\n * Event emitted when an ad manifest has been loaded.\n */\n onBmpAdManifestLoaded?: (event: {\n nativeEvent: AdManifestLoadedEvent;\n }) => void;\n /**\n * Event emitted when an ad quartile has been reached.\n */\n onBmpAdQuartile?: (event: { nativeEvent: AdQuartileEvent }) => void;\n /**\n * Event emitted when an ad has been scheduled.\n */\n onBmpAdScheduled?: (event: { nativeEvent: AdScheduledEvent }) => void;\n /**\n * Event emitted when an ad has been skipped.\n */\n onBmpAdSkipped?: (event: { nativeEvent: AdSkippedEvent }) => void;\n /**\n * Event emitted when an ad has started.\n */\n onBmpAdStarted?: (event: { nativeEvent: AdStartedEvent }) => void;\n /**\n * Event emitted when casting to a cast-compatible device is available.\n *\n * @platform iOS, Android\n */\n onBmpCastAvailable?: (event: { nativeEvent: CastAvailableEvent }) => void;\n /**\n * Event emitted when the playback on a cast-compatible device was paused.\n *\n * @platform iOS, Android\n */\n onBmpCastPaused?: (event: { nativeEvent: CastPausedEvent }) => void;\n /**\n * Event emitted when the playback on a cast-compatible device has finished.\n *\n * @platform iOS, Android\n */\n onBmpCastPlaybackFinished?: (event: {\n nativeEvent: CastPlaybackFinishedEvent;\n }) => void;\n /**\n * Event emitted when playback on a cast-compatible device has started.\n *\n * @platform iOS, Android\n */\n onBmpCastPlaying?: (event: { nativeEvent: CastPlayingEvent }) => void;\n /**\n * Event emitted when the cast app is launched successfully.\n *\n * @platform iOS, Android\n */\n onBmpCastStarted?: (event: { nativeEvent: CastStartedEvent }) => void;\n /**\n * Event emitted when casting is initiated, but the user still needs to choose which device should be used.\n *\n * @platform iOS, Android\n */\n onBmpCastStart?: (event: { nativeEvent: CastStartEvent }) => void;\n /**\n * Event emitted when casting to a cast-compatible device is stopped.\n *\n * @platform iOS, Android\n */\n onBmpCastStopped?: (event: { nativeEvent: CastStoppedEvent }) => void;\n /**\n * Event emitted when the time update from the currently used cast-compatible device is received.\n *\n * @platform iOS, Android\n */\n onBmpCastTimeUpdated?: (event: { nativeEvent: CastTimeUpdatedEvent }) => void;\n /**\n * Event emitted when a cast-compatible device has been chosen and the player is waiting for the device to get ready for\n * playback.\n *\n * @platform iOS, Android\n */\n onBmpCastWaitingForDevice?: (event: {\n nativeEvent: CastWaitingForDeviceEvent;\n }) => void;\n /**\n * Event emitted when a subtitle entry transitions into the active status.\n */\n onBmpCueEnter?: (event: { nativeEvent: CueEnterEvent }) => void;\n /**\n * Event emitted when an active subtitle entry transitions into the inactive status.\n */\n onBmpCueExit?: (event: { nativeEvent: CueExitEvent }) => void;\n /**\n * Event emitted when the player is destroyed.\n */\n onBmpDestroy?: (event: { nativeEvent: DestroyEvent }) => void;\n /**\n * Emitted when a download was finished.\n */\n onBmpDownloadFinished?: (event: {\n nativeEvent: DownloadFinishedEvent;\n }) => void;\n /**\n * All events emitted by the player.\n */\n onBmpEvent?: (event: { nativeEvent: Event }) => void;\n /**\n * Event emitted when fullscreen mode has been enabled.\n *\n * @platform iOS, Android\n */\n onBmpFullscreenEnabled?: (event: {\n nativeEvent: FullscreenEnabledEvent;\n }) => void;\n /**\n * Event emitted when fullscreen mode has been disabled.\n *\n * @platform iOS, Android\n */\n onBmpFullscreenDisabled?: (event: {\n nativeEvent: FullscreenDisabledEvent;\n }) => void;\n /**\n * Event emitted when fullscreen mode has been entered.\n *\n * @platform iOS, Android\n */\n onBmpFullscreenEnter?: (event: { nativeEvent: FullscreenEnterEvent }) => void;\n /**\n * Event emitted when fullscreen mode has been exited.\n *\n * @platform iOS, Android\n */\n onBmpFullscreenExit?: (event: { nativeEvent: FullscreenExitEvent }) => void;\n /**\n * Event emitted when the player has been muted.\n */\n onBmpMuted?: (event: { nativeEvent: MutedEvent }) => void;\n /**\n * Event emitted when the player has been paused.\n */\n onBmpPaused?: (event: { nativeEvent: PausedEvent }) => void;\n /**\n * Event mitted when the availability of the Picture in Picture mode changed.\n */\n onBmpPictureInPictureAvailabilityChanged?: (event: {\n nativeEvent: PictureInPictureAvailabilityChangedEvent;\n }) => void;\n /**\n * Event emitted when the player enters Picture in Picture mode.\n */\n onBmpPictureInPictureEnter?: (event: {\n nativeEvent: PictureInPictureEnterEvent;\n }) => void;\n /**\n * Event emitted when the player entered Picture in Picture mode.\n *\n * @platform iOS\n */\n onBmpPictureInPictureEntered?: (event: {\n nativeEvent: PictureInPictureEnteredEvent;\n }) => void;\n /**\n * Event emitted when the player exits Picture in Picture mode.\n */\n onBmpPictureInPictureExit?: (event: {\n nativeEvent: PictureInPictureExitEvent;\n }) => void;\n /**\n * Event emitted when the player exited Picture in Picture mode.\n *\n * @platform iOS\n */\n onBmpPictureInPictureExited?: (event: {\n nativeEvent: PictureInPictureExitedEvent;\n }) => void;\n /**\n * Event emitted when the player received an intention to start/resume playback.\n */\n onBmpPlay?: (event: { nativeEvent: PlayEvent }) => void;\n /**\n * Event emitted when the playback of the current media has finished.\n */\n onBmpPlaybackFinished?: (event: {\n nativeEvent: PlaybackFinishedEvent;\n }) => void;\n /**\n * Emitted when the player transitions from one playback speed to another.\n * @platform iOS, tvOS\n */\n onBmpPlaybackSpeedChanged?: (event: {\n nativeEvent: PlaybackSpeedChangedEvent;\n }) => void;\n /**\n * Event emitted when a source is loaded into the player.\n * Seeking and time shifting are allowed as soon as this event is seen.\n */\n onBmpPlayerActive?: (event: { nativeEvent: PlayerActiveEvent }) => void;\n /**\n * Event Emitted when a player error occurred.\n */\n onBmpPlayerError?: (event: { nativeEvent: PlayerErrorEvent }) => void;\n /**\n * Event emitted when a player warning occurred.\n */\n onBmpPlayerWarning?: (event: { nativeEvent: PlayerWarningEvent }) => void;\n /**\n * Emitted when playback has started.\n */\n onBmpPlaying?: (event: { nativeEvent: PlayingEvent }) => void;\n /**\n * Emitted when the player is ready for immediate playback, because initial audio/video\n * has been downloaded.\n */\n onBmpReady?: (event: { nativeEvent: ReadyEvent }) => void;\n /**\n * Event emitted when the player is about to seek to a new position.\n * Only applies to VoD streams.\n */\n onBmpSeek?: (event: { nativeEvent: SeekEvent }) => void;\n /**\n * Event emitted when seeking has finished and data to continue playback is available.\n * Only applies to VoD streams.\n */\n onBmpSeeked?: (event: { nativeEvent: SeekedEvent }) => void;\n /**\n * Event mitted when the player starts time shifting.\n * Only applies to live streams.\n */\n onBmpTimeShift?: (event: { nativeEvent: TimeShiftEvent }) => void;\n /**\n * Event emitted when time shifting has finished and data is available to continue playback.\n * Only applies to live streams.\n */\n onBmpTimeShifted?: (event: { nativeEvent: TimeShiftedEvent }) => void;\n /**\n * Event emitted when the player begins to stall and to buffer due to an empty buffer.\n */\n onBmpStallStarted?: (event: { nativeEvent: StallStartedEvent }) => void;\n /**\n * Event emitted when the player ends stalling, due to enough data in the buffer.\n */\n onBmpStallEnded?: (event: { nativeEvent: StallEndedEvent }) => void;\n /**\n * Event emitted when a source error occurred.\n */\n onBmpSourceError?: (event: { nativeEvent: SourceErrorEvent }) => void;\n /**\n * Event emitted when a new source loading has started.\n */\n onBmpSourceLoad?: (event: { nativeEvent: SourceLoadEvent }) => void;\n /**\n * Event emitted when a new source is loaded.\n * This does not mean that the source is immediately ready for playback.\n * `ReadyEvent` indicates the player is ready for immediate playback.\n */\n onBmpSourceLoaded?: (event: { nativeEvent: SourceLoadedEvent }) => void;\n /**\n * Event emitted when the current source has been unloaded.\n */\n onBmpSourceUnloaded?: (event: { nativeEvent: SourceUnloadedEvent }) => void;\n /**\n * Event emitted when a source warning occurred.\n */\n onBmpSourceWarning?: (event: { nativeEvent: SourceWarningEvent }) => void;\n /**\n * Event emitted when a new audio track is added to the player.\n */\n onBmpAudioAdded?: (event: { nativeEvent: AudioAddedEvent }) => void;\n /**\n * Event emitted when the player's selected audio track has changed.\n */\n onBmpAudioChanged?: (event: { nativeEvent: AudioChangedEvent }) => void;\n /**\n * Event emitted when an audio track is removed from the player.\n */\n onBmpAudioRemoved?: (event: { nativeEvent: AudioRemovedEvent }) => void;\n /**\n * Event emitted when a new subtitle track is added to the player.\n */\n onBmpSubtitleAdded?: (event: { nativeEvent: SubtitleAddedEvent }) => void;\n /**\n * Event emitted when the player's selected subtitle track has changed.\n */\n onBmpSubtitleChanged?: (event: { nativeEvent: SubtitleChangedEvent }) => void;\n /**\n * Event emitted when a subtitle track is removed from the player.\n */\n onBmpSubtitleRemoved?: (event: { nativeEvent: SubtitleRemovedEvent }) => void;\n /**\n * Event emitted when the current playback time has changed.\n */\n onBmpTimeChanged?: (event: { nativeEvent: TimeChangedEvent }) => void;\n /**\n * Emitted when the player is unmuted.\n */\n onBmpUnmuted?: (event: { nativeEvent: UnmutedEvent }) => void;\n /**\n * Emitted when current video download quality has changed.\n */\n onBmpVideoDownloadQualityChanged?: (event: {\n nativeEvent: VideoDownloadQualityChangedEvent;\n }) => void;\n /**\n * Emitted when the current video playback quality has changed.\n */\n onBmpVideoPlaybackQualityChanged?: (event: {\n nativeEvent: VideoPlaybackQualityChangedEvent;\n }) => void;\n};\n"]}
@@ -15,7 +15,7 @@ export interface PictureInPictureConfig {
15
15
  *
16
16
  * Default is `false`.
17
17
  *
18
- * @remarks Platform: iOS 14.2 and above
18
+ * @platform iOS 14.2 and above
19
19
  */
20
20
  shouldEnterOnBackground?: boolean;
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pictureInPictureConfig.js","sourceRoot":"","sources":["../../../src/components/PlayerView/pictureInPictureConfig.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Provides options to configure Picture in Picture playback.\n */\nexport interface PictureInPictureConfig {\n /**\n * Whether Picture in Picture feature is enabled or not.\n *\n * Default is `false`.\n */\n isEnabled?: boolean;\n\n /**\n * Defines whether Picture in Picture should start automatically when the app transitions to background.\n *\n * Does not have any affect when Picture in Picture is disabled.\n *\n * Default is `false`.\n *\n * @remarks Platform: iOS 14.2 and above\n */\n shouldEnterOnBackground?: boolean;\n}\n"]}
1
+ {"version":3,"file":"pictureInPictureConfig.js","sourceRoot":"","sources":["../../../src/components/PlayerView/pictureInPictureConfig.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Provides options to configure Picture in Picture playback.\n */\nexport interface PictureInPictureConfig {\n /**\n * Whether Picture in Picture feature is enabled or not.\n *\n * Default is `false`.\n */\n isEnabled?: boolean;\n\n /**\n * Defines whether Picture in Picture should start automatically when the app transitions to background.\n *\n * Does not have any affect when Picture in Picture is disabled.\n *\n * Default is `false`.\n *\n * @platform iOS 14.2 and above\n */\n shouldEnterOnBackground?: boolean;\n}\n"]}
@@ -32,7 +32,7 @@ export interface PlayerViewConfig {
32
32
  *
33
33
  * Default is {@link SurfaceType.SurfaceView}.
34
34
  *
35
- * @remarks Platform: Android
35
+ * @platform Android
36
36
  */
37
37
  surfaceType?: SurfaceType;
38
38
  }
@@ -61,7 +61,7 @@ export interface WebUiConfig extends UiConfig {
61
61
  * By default this is enabled only for the TV UI variant, as it's needed there to
62
62
  * initiate spatial navigation using the remote control.
63
63
  *
64
- * @remarks Platform: Android
64
+ * @platform Android
65
65
  */
66
66
  focusUiOnInitialization?: boolean;
67
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"playerViewConfig.js","sourceRoot":"","sources":["../../../src/components/PlayerView/playerViewConfig.ts"],"names":[],"mappings":"AA0EA,MAAM,OAAgB,OAAO;IAiBC;IAhB5B;;;;;;;;;;;;;;;OAeG;IACH,YAA4B,wBAAgC;QAAhC,6BAAwB,GAAxB,wBAAwB,CAAQ;IAAG,CAAC;CACjE;AAED,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC;QACE,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACjE,CAAC;CACF;AAED,MAAM,OAAO,IAAK,SAAQ,OAAO;IAC/B;QACE,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACxD,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,OAAO;CAAG;AAExC;;;;;GAKG;AACH,MAAM,CAAN,IAAY,WAQX;AARD,WAAY,WAAW;IACrB;;;OAGG;IACH,0CAA2B,CAAA;IAC3B,4DAA4D;IAC5D,0CAA2B,CAAA;AAC7B,CAAC,EARW,WAAW,KAAX,WAAW,QAQtB","sourcesContent":["import { PictureInPictureConfig } from './pictureInPictureConfig';\n\n/**\n * Configures the visual presentation and behaviour of the `PlayerView`.\n */\nexport interface PlayerViewConfig {\n /**\n * Configures the visual presentation and behaviour of the Bitmovin Player UI.\n * A {@link WebUiConfig} can be used to configure the default Bitmovin Player Web UI.\n *\n * Default is {@link WebUiConfig}.\n *\n * Limitations:\n * Configuring the `uiConfig` only has an effect if the {@link StyleConfig.userInterfaceType} is set to {@link UserInterfaceType.Bitmovin}.\n */\n uiConfig?: UiConfig;\n\n /**\n * Provides options to configure Picture in Picture playback.\n */\n pictureInPictureConfig?: PictureInPictureConfig;\n\n /**\n * When set to `true`, the first frame of the main content will not be rendered before playback starts. Default is `false`.\n * This configuration has no effect for the {@link UserInterfaceType.Subtitle} on iOS/tvOS.\n *\n * To reliably hide the first frame before a pre-roll ad, please ensure that you are using the {@link AdvertisingConfig} to schedule ads and not the {@link Player.scheduleAd} API call.\n */\n hideFirstFrame?: boolean;\n\n /**\n * Specify on which surface type the video should be rendered.\n *\n * See {@link https://developer.android.com/guide/topics/media/ui/playerview#surfacetype|Choosing a surface type}\n * for more information.\n *\n * Default is {@link SurfaceType.SurfaceView}.\n *\n * @remarks Platform: Android\n */\n surfaceType?: SurfaceType;\n}\n\n/**\n * Configures the visual presentation and behaviour of the Bitmovin Player UI.\n */\nexport type UiConfig = object;\n\n/**\n * Configures the visual presentation and behaviour of the Bitmovin Web UI.\n */\nexport interface WebUiConfig extends UiConfig {\n /**\n * Whether the Bitmovin Web UI will show playback speed selection options in the settings menu.\n * Default is `true`.\n */\n playbackSpeedSelectionEnabled?: boolean;\n /**\n * The UI variant to use for the Bitmovin Player Web UI.\n *\n * Default is {@link SmallScreenUi}\n */\n variant?: Variant;\n /**\n * Whether the WebView should be focused on initialization.\n *\n * By default this is enabled only for the TV UI variant, as it's needed there to\n * initiate spatial navigation using the remote control.\n *\n * @remarks Platform: Android\n */\n focusUiOnInitialization?: boolean;\n}\n\nexport abstract class Variant {\n /**\n * Specifies the function name that will be used to initialize the `UIManager`\n * for the Bitmovin Player Web UI.\n *\n * The function is called on the `window` object with the `Player` as the first argument and\n * the `UIConfig` as the second argument.\n *\n * Example:\n * When you added a new function or want to use a different function of our `UIFactory`,\n * you can specify the full qualifier name including namespaces.\n * e.g. `bitmovin.playerui.UIFactory.buildDefaultSmallScreenUI` for the SmallScreenUi.\n * @see UIFactory https://github.com/bitmovin/bitmovin-player-ui/blob/develop/src/ts/uifactory.ts#L60\n *\n * Notes:\n * - It's not necessary to use our `UIFactory`. Any static function can be specified.\n */\n constructor(public readonly uiManagerFactoryFunction: string) {}\n}\n\nexport class SmallScreenUi extends Variant {\n constructor() {\n super('bitmovin.playerui.UIFactory.buildDefaultSmallScreenUI');\n }\n}\n\nexport class TvUi extends Variant {\n constructor() {\n super('bitmovin.playerui.UIFactory.buildDefaultTvUI');\n }\n}\n\nexport class CustomUi extends Variant {}\n\n/**\n * The type of surface on which to render video.\n *\n * See {@link https://developer.android.com/guide/topics/media/ui/playerview#surfacetype|Choosing a surface type}\n * for more information.\n */\nexport enum SurfaceType {\n /**\n * SurfaceView generally causes lower battery consumption,\n * and has better handling for HDR and secure content.\n */\n SurfaceView = 'SurfaceView',\n /** TextureView is sometime needed for smooth animations. */\n TextureView = 'TextureView',\n}\n"]}
1
+ {"version":3,"file":"playerViewConfig.js","sourceRoot":"","sources":["../../../src/components/PlayerView/playerViewConfig.ts"],"names":[],"mappings":"AA0EA,MAAM,OAAgB,OAAO;IAiBC;IAhB5B;;;;;;;;;;;;;;;OAeG;IACH,YAA4B,wBAAgC;QAAhC,6BAAwB,GAAxB,wBAAwB,CAAQ;IAAG,CAAC;CACjE;AAED,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC;QACE,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACjE,CAAC;CACF;AAED,MAAM,OAAO,IAAK,SAAQ,OAAO;IAC/B;QACE,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACxD,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,OAAO;CAAG;AAExC;;;;;GAKG;AACH,MAAM,CAAN,IAAY,WAQX;AARD,WAAY,WAAW;IACrB;;;OAGG;IACH,0CAA2B,CAAA;IAC3B,4DAA4D;IAC5D,0CAA2B,CAAA;AAC7B,CAAC,EARW,WAAW,KAAX,WAAW,QAQtB","sourcesContent":["import { PictureInPictureConfig } from './pictureInPictureConfig';\n\n/**\n * Configures the visual presentation and behaviour of the `PlayerView`.\n */\nexport interface PlayerViewConfig {\n /**\n * Configures the visual presentation and behaviour of the Bitmovin Player UI.\n * A {@link WebUiConfig} can be used to configure the default Bitmovin Player Web UI.\n *\n * Default is {@link WebUiConfig}.\n *\n * Limitations:\n * Configuring the `uiConfig` only has an effect if the {@link StyleConfig.userInterfaceType} is set to {@link UserInterfaceType.Bitmovin}.\n */\n uiConfig?: UiConfig;\n\n /**\n * Provides options to configure Picture in Picture playback.\n */\n pictureInPictureConfig?: PictureInPictureConfig;\n\n /**\n * When set to `true`, the first frame of the main content will not be rendered before playback starts. Default is `false`.\n * This configuration has no effect for the {@link UserInterfaceType.Subtitle} on iOS/tvOS.\n *\n * To reliably hide the first frame before a pre-roll ad, please ensure that you are using the {@link AdvertisingConfig} to schedule ads and not the {@link Player.scheduleAd} API call.\n */\n hideFirstFrame?: boolean;\n\n /**\n * Specify on which surface type the video should be rendered.\n *\n * See {@link https://developer.android.com/guide/topics/media/ui/playerview#surfacetype|Choosing a surface type}\n * for more information.\n *\n * Default is {@link SurfaceType.SurfaceView}.\n *\n * @platform Android\n */\n surfaceType?: SurfaceType;\n}\n\n/**\n * Configures the visual presentation and behaviour of the Bitmovin Player UI.\n */\nexport type UiConfig = object;\n\n/**\n * Configures the visual presentation and behaviour of the Bitmovin Web UI.\n */\nexport interface WebUiConfig extends UiConfig {\n /**\n * Whether the Bitmovin Web UI will show playback speed selection options in the settings menu.\n * Default is `true`.\n */\n playbackSpeedSelectionEnabled?: boolean;\n /**\n * The UI variant to use for the Bitmovin Player Web UI.\n *\n * Default is {@link SmallScreenUi}\n */\n variant?: Variant;\n /**\n * Whether the WebView should be focused on initialization.\n *\n * By default this is enabled only for the TV UI variant, as it's needed there to\n * initiate spatial navigation using the remote control.\n *\n * @platform Android\n */\n focusUiOnInitialization?: boolean;\n}\n\nexport abstract class Variant {\n /**\n * Specifies the function name that will be used to initialize the `UIManager`\n * for the Bitmovin Player Web UI.\n *\n * The function is called on the `window` object with the `Player` as the first argument and\n * the `UIConfig` as the second argument.\n *\n * Example:\n * When you added a new function or want to use a different function of our `UIFactory`,\n * you can specify the full qualifier name including namespaces.\n * e.g. `bitmovin.playerui.UIFactory.buildDefaultSmallScreenUI` for the SmallScreenUi.\n * @see UIFactory https://github.com/bitmovin/bitmovin-player-ui/blob/develop/src/ts/uifactory.ts#L60\n *\n * Notes:\n * - It's not necessary to use our `UIFactory`. Any static function can be specified.\n */\n constructor(public readonly uiManagerFactoryFunction: string) {}\n}\n\nexport class SmallScreenUi extends Variant {\n constructor() {\n super('bitmovin.playerui.UIFactory.buildDefaultSmallScreenUI');\n }\n}\n\nexport class TvUi extends Variant {\n constructor() {\n super('bitmovin.playerui.UIFactory.buildDefaultTvUI');\n }\n}\n\nexport class CustomUi extends Variant {}\n\n/**\n * The type of surface on which to render video.\n *\n * See {@link https://developer.android.com/guide/topics/media/ui/playerview#surfacetype|Choosing a surface type}\n * for more information.\n */\nexport enum SurfaceType {\n /**\n * SurfaceView generally causes lower battery consumption,\n * and has better handling for HDR and secure content.\n */\n SurfaceView = 'SurfaceView',\n /** TextureView is sometime needed for smooth animations. */\n TextureView = 'TextureView',\n}\n"]}
@@ -2,7 +2,7 @@ import { NativeInstanceConfig } from '../nativeInstance';
2
2
  /**
3
3
  * Configures the playback behaviour of the player.
4
4
  *
5
- * @remarks Platform: Android
5
+ * @platform Android
6
6
  */
7
7
  export interface DecoderConfig extends NativeInstanceConfig {
8
8
  /**
@@ -75,7 +75,7 @@ export interface DecoderConfig extends NativeInstanceConfig {
75
75
  * Can be set on the `DecoderConfig.decoderPriorityProvider` to override the default decoder selection logic.
76
76
  * See {@link DecoderConfig#decoderPriorityProvider} for more details
77
77
  *
78
- * @remarks Platform: Android
78
+ * @platform Android
79
79
  * */
80
80
  export interface DecoderPriorityProvider {
81
81
  overrideDecodersPriority: (context: DecoderContext, preferredDecoders: MediaCodecInfo[]) => MediaCodecInfo[];
@@ -1 +1 @@
1
- {"version":3,"file":"decoderConfig.js","sourceRoot":"","sources":["../../src/decoder/decoderConfig.ts"],"names":[],"mappings":"AAmGA,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,0CAAe,CAAA;IACf,0CAAe,CAAA;AACjB,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC","sourcesContent":["import { NativeInstanceConfig } from '../nativeInstance';\n\n/**\n * Configures the playback behaviour of the player.\n *\n * @remarks Platform: Android\n */\nexport interface DecoderConfig extends NativeInstanceConfig {\n /**\n * A callback interface for sorting and filtering decoders based on priority.\n *\n * This callback is invoked when the player selects a decoder, providing the {@link DecoderContext}\n * and a list of available {@link MediaCodecInfo} objects. The list is initially ordered by\n * the default priority in which decoders will be attempted.\n *\n * The callback should return a reordered or filtered list of {@link MediaCodecInfo} objects\n * that determines the selection priority.\n *\n * ## Example Usage\n *\n * ### Prefer a specific decoder for main content video playback\n * The following example prioritizes a specific decoder for non-ad video playback:\n * ```ts\n * const decoderPriorityProvider: DecoderPriorityProvider = {\n * overrideDecodersPriority: (context: DecoderContext, preferredDecoders: MediaCodecInfo[]): MediaCodecInfo[] => {\n * if (!context.isAd && context.mediaType === DecoderContextMediaType.VIDEO) {\n * // Prioritize a specific decoder\n * return preferredDecoders.sort((a, b) => {\n * const aAsNumber = a.name.startsWith(\"OMX.google.\") ? 1 : 2\n * const bAsNumber = b.name.startsWith(\"OMX.google.\") ? 1 : 2\n * return aAsNumber - bAsNumber\n * })\n * }\n * return preferredDecoders\n * }\n * }\n * ```\n *\n * ### Prefer software decoders for ads playback\n * The following example prioritizes software decoders over hardware decoders for ad playback:\n * ```ts\n * const decoderPriorityProvider: DecoderPriorityProvider = {\n * overrideDecodersPriority: (context: DecoderContext, preferredDecoders: MediaCodecInfo[]): MediaCodecInfo[] => {\n * if (context.isAd) {\n * // Prioritize a specific decoder\n * return preferredDecoders.sort((a, b) => {\n * const aAsNumber = a.isSoftware ? 1 : 2\n * const bAsNumber = b.isSoftware ? 1 : 2\n * return aAsNumber - bAsNumber\n * })\n * }\n * return preferredDecoders\n * }\n * }\n * ```\n *\n * ### Disable software fallback for video playback\n * The following example disables software decoders for non-ad video playback:\n * ```ts\n * const decoderPriorityProvider: DecoderPriorityProvider = {\n * overrideDecodersPriority: (context: DecoderContext, preferredDecoders: MediaCodecInfo[]): MediaCodecInfo[] => {\n * if (!context.isAd && context.mediaType === DecoderContextMediaType.VIDEO) {\n * // Prioritize a specific decoder\n * return preferredDecoders.filter((info) => {\n * return !info.isSoftware\n * })\n * }\n * return preferredDecoders\n * }\n * }\n * ```\n */\n decoderPriorityProvider?: DecoderPriorityProvider | null;\n}\n\n/**\n * Can be set on the `DecoderConfig.decoderPriorityProvider` to override the default decoder selection logic.\n * See {@link DecoderConfig#decoderPriorityProvider} for more details\n *\n * @remarks Platform: Android\n * */\nexport interface DecoderPriorityProvider {\n overrideDecodersPriority: (\n context: DecoderContext,\n preferredDecoders: MediaCodecInfo[]\n ) => MediaCodecInfo[];\n}\n\n/** The context in which a new decoder is chosen. */\nexport interface DecoderContext {\n mediaType: DecoderContextMediaType;\n isAd: boolean;\n}\n\nexport interface MediaCodecInfo {\n name: string;\n isSoftware: boolean;\n}\n\nexport enum DecoderContextMediaType {\n AUDIO = 'Audio',\n VIDEO = 'Video',\n}\n"]}
1
+ {"version":3,"file":"decoderConfig.js","sourceRoot":"","sources":["../../src/decoder/decoderConfig.ts"],"names":[],"mappings":"AAmGA,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,0CAAe,CAAA;IACf,0CAAe,CAAA;AACjB,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC","sourcesContent":["import { NativeInstanceConfig } from '../nativeInstance';\n\n/**\n * Configures the playback behaviour of the player.\n *\n * @platform Android\n */\nexport interface DecoderConfig extends NativeInstanceConfig {\n /**\n * A callback interface for sorting and filtering decoders based on priority.\n *\n * This callback is invoked when the player selects a decoder, providing the {@link DecoderContext}\n * and a list of available {@link MediaCodecInfo} objects. The list is initially ordered by\n * the default priority in which decoders will be attempted.\n *\n * The callback should return a reordered or filtered list of {@link MediaCodecInfo} objects\n * that determines the selection priority.\n *\n * ## Example Usage\n *\n * ### Prefer a specific decoder for main content video playback\n * The following example prioritizes a specific decoder for non-ad video playback:\n * ```ts\n * const decoderPriorityProvider: DecoderPriorityProvider = {\n * overrideDecodersPriority: (context: DecoderContext, preferredDecoders: MediaCodecInfo[]): MediaCodecInfo[] => {\n * if (!context.isAd && context.mediaType === DecoderContextMediaType.VIDEO) {\n * // Prioritize a specific decoder\n * return preferredDecoders.sort((a, b) => {\n * const aAsNumber = a.name.startsWith(\"OMX.google.\") ? 1 : 2\n * const bAsNumber = b.name.startsWith(\"OMX.google.\") ? 1 : 2\n * return aAsNumber - bAsNumber\n * })\n * }\n * return preferredDecoders\n * }\n * }\n * ```\n *\n * ### Prefer software decoders for ads playback\n * The following example prioritizes software decoders over hardware decoders for ad playback:\n * ```ts\n * const decoderPriorityProvider: DecoderPriorityProvider = {\n * overrideDecodersPriority: (context: DecoderContext, preferredDecoders: MediaCodecInfo[]): MediaCodecInfo[] => {\n * if (context.isAd) {\n * // Prioritize a specific decoder\n * return preferredDecoders.sort((a, b) => {\n * const aAsNumber = a.isSoftware ? 1 : 2\n * const bAsNumber = b.isSoftware ? 1 : 2\n * return aAsNumber - bAsNumber\n * })\n * }\n * return preferredDecoders\n * }\n * }\n * ```\n *\n * ### Disable software fallback for video playback\n * The following example disables software decoders for non-ad video playback:\n * ```ts\n * const decoderPriorityProvider: DecoderPriorityProvider = {\n * overrideDecodersPriority: (context: DecoderContext, preferredDecoders: MediaCodecInfo[]): MediaCodecInfo[] => {\n * if (!context.isAd && context.mediaType === DecoderContextMediaType.VIDEO) {\n * // Prioritize a specific decoder\n * return preferredDecoders.filter((info) => {\n * return !info.isSoftware\n * })\n * }\n * return preferredDecoders\n * }\n * }\n * ```\n */\n decoderPriorityProvider?: DecoderPriorityProvider | null;\n}\n\n/**\n * Can be set on the `DecoderConfig.decoderPriorityProvider` to override the default decoder selection logic.\n * See {@link DecoderConfig#decoderPriorityProvider} for more details\n *\n * @platform Android\n * */\nexport interface DecoderPriorityProvider {\n overrideDecodersPriority: (\n context: DecoderContext,\n preferredDecoders: MediaCodecInfo[]\n ) => MediaCodecInfo[];\n}\n\n/** The context in which a new decoder is chosen. */\nexport interface DecoderContext {\n mediaType: DecoderContextMediaType;\n isAd: boolean;\n}\n\nexport interface MediaCodecInfo {\n name: string;\n isSoftware: boolean;\n}\n\nexport enum DecoderContextMediaType {\n AUDIO = 'Audio',\n VIDEO = 'Video',\n}\n"]}
@@ -9,13 +9,13 @@ export interface DrmConfig extends NativeInstanceConfig {
9
9
  /**
10
10
  * FairPlay specific configuration.
11
11
  *
12
- * @remarks Platform: iOS
12
+ * @platform iOS
13
13
  */
14
14
  fairplay?: FairplayConfig;
15
15
  /**
16
16
  * Widevine specific configuration.
17
17
  *
18
- * @remarks Platform: Android, iOS (only for casting).
18
+ * @platform Android, iOS (only for casting).
19
19
  */
20
20
  widevine?: WidevineConfig;
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,cAAwC,MAAM,mBAAmB,CAAC;AAGzE,OAAO,SAAS,MAAM,aAAa,CAAC;AAuBpC;;;GAGG;AACH,MAAM,OAAO,GAAI,SAAQ,cAAyB;IAChD;;OAEG;IACH,aAAa,GAAG,KAAK,CAAC;IACtB;;OAEG;IACH,WAAW,GAAG,KAAK,CAAC;IAEZ,kBAAkB,GAAwB,EAAE,CAAC;IAErD;;OAEG;IACH,UAAU,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,uDAAuD;YACvD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE3B,wDAAwD;YACxD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF;;OAEG;IACH,OAAO,GAAG,KAAK,IAAI,EAAE;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,+BAA+B;YAC/B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF;;OAEG;IACK,mBAAmB;QACzB,kBAAkB;QAClB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,SAAS,CAAC,WAAW,CACnB,sBAAsB,EACtB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAChC,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACvC,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC,CACF,CACF,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,SAAS,CAAC,WAAW,CACnB,sBAAsB,EACtB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;YACzC,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACvC,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC,CACF,CACF,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,SAAS,CAAC,WAAW,CACnB,2BAA2B,EAC3B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE;YACrC,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACvC,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACvD,CAAC,CACF,CACF,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,SAAS,CAAC,WAAW,CACnB,oBAAoB,EACpB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAC9B,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACvC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC,CACF,CACF,CAAC;QAEF,wBAAwB;QACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,SAAS,CAAC,WAAW,CACnB,kBAAkB,EAClB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;YAC3C,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACvC,4CAA4C;YAC5C,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,IAAI,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC,CACF,CACF,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,SAAS,CAAC,WAAW,CACnB,kBAAkB,EAClB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;YAClC,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACvC,4CAA4C;YAC5C,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,IAAI,OAAO,CAAC,CAAC;QAC7C,CAAC,CACF,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACK,oBAAoB,GAAG,CAAC,EAAU,EAAE,WAAmB,EAAE,EAAE;QACjE,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,WAAW,CAAC,CAAC;YACxE,SAAS,CAAC,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IAEF;;;;;;;;OAQG;IACK,gBAAgB,GAAG,CACzB,EAAU,EACV,OAAgB,EAChB,OAAgB,EAChB,EAAE;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GACV,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxE,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACpC,MAAM,MAAM,GACV,QAAQ,CAAC,EAAE,KAAK,KAAK;gBACnB,CAAC,CAAE,MAAyB,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,OAAQ,CAAC;gBAChE,CAAC,CAAE,MAAyB,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC;YAC3D,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IAEF;;;;;;;;;OASG;IACK,oBAAoB,GAAG,CAC7B,EAAU,EACV,WAAmB,EACnB,OAAe,EACf,EAAE;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CACxD,WAAW,EACX,OAAO,CACR,CAAC;YACF,SAAS,CAAC,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IAEF;;;;;;;OAOG;IACK,gBAAgB,GAAG,CAAC,EAAU,EAAE,OAAgB,EAAE,EAAE;QAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,MAAM,cAAc,GAClB,QAAQ,CAAC,EAAE,KAAK,KAAK;YACnB,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc;YACvC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC;QAC5C,IAAI,cAAc,EAAE,CAAC;YACnB,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC;IAEF;;;;;;;;;OASG;IACK,yBAAyB,GAAG,CAClC,EAAU,EACV,gBAAwB,EACxB,EAAE;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC;YACnD,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC,gBAAgB,CAAC,CAAC;YACrE,SAAS,CAAC,2BAA2B,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC;IAEF;;;;;;;;;OASG;IACK,kBAAkB,GAAG,CAAC,EAAU,EAAE,SAAiB,EAAE,EAAE;QAC7D,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC;YACpE,SAAS,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC;CACH","sourcesContent":["import { Platform } from 'react-native';\nimport { EventSubscription } from 'expo-modules-core';\nimport NativeInstance, { NativeInstanceConfig } from '../nativeInstance';\nimport { FairplayConfig } from './fairplayConfig';\nimport { WidevineConfig } from './widevineConfig';\nimport DrmModule from './drmModule';\n\n// Export config types from DRM module.\nexport { FairplayConfig, WidevineConfig };\n\n/**\n * Represents the general Streaming DRM config.\n */\nexport interface DrmConfig extends NativeInstanceConfig {\n /**\n * FairPlay specific configuration.\n *\n * @remarks Platform: iOS\n */\n fairplay?: FairplayConfig;\n /**\n * Widevine specific configuration.\n *\n * @remarks Platform: Android, iOS (only for casting).\n */\n widevine?: WidevineConfig;\n}\n\n/**\n * Represents a native DRM configuration object.\n * @internal\n */\nexport class Drm extends NativeInstance<DrmConfig> {\n /**\n * Whether this object's native instance has been created.\n */\n isInitialized = false;\n /**\n * Whether this object's native instance has been disposed.\n */\n isDestroyed = false;\n\n private eventSubscriptions: EventSubscription[] = [];\n\n /**\n * Allocates the DRM config instance and its resources natively.\n */\n initialize = async () => {\n if (!this.isInitialized) {\n // Set up event listeners for DRM preparation callbacks\n this.setupEventListeners();\n\n // Create native configuration object using Expo module.\n if (this.config) {\n await DrmModule.initializeWithConfig(this.nativeId, this.config);\n }\n this.isInitialized = true;\n }\n };\n\n /**\n * Destroys the native DRM config and releases all of its allocated resources.\n */\n destroy = async () => {\n if (!this.isDestroyed) {\n await DrmModule.destroy(this.nativeId);\n // Clean up event subscriptions\n this.eventSubscriptions.forEach((subscription) => subscription.remove());\n this.eventSubscriptions = [];\n this.isDestroyed = true;\n }\n };\n\n /**\n * Sets up event listeners for all DRM preparation callbacks\n */\n private setupEventListeners() {\n // iOS-only events\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareCertificate',\n ({ nativeId, id, certificate }) => {\n if (nativeId !== this.nativeId) return;\n this.onPrepareCertificate(id, certificate);\n }\n )\n );\n\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareSyncMessage',\n ({ nativeId, id, syncMessage, assetId }) => {\n if (nativeId !== this.nativeId) return;\n this.onPrepareSyncMessage(id, syncMessage, assetId);\n }\n )\n );\n\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareLicenseServerUrl',\n ({ nativeId, id, licenseServerUrl }) => {\n if (nativeId !== this.nativeId) return;\n this.onPrepareLicenseServerUrl(id, licenseServerUrl);\n }\n )\n );\n\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareContentId',\n ({ nativeId, id, contentId }) => {\n if (nativeId !== this.nativeId) return;\n this.onPrepareContentId(id, contentId);\n }\n )\n );\n\n // Cross-platform events\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareMessage',\n ({ nativeId, id, data, message, assetId }) => {\n if (nativeId !== this.nativeId) return;\n // Android sends 'data', iOS sends 'message'\n this.onPrepareMessage(id, data || message, assetId);\n }\n )\n );\n\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareLicense',\n ({ nativeId, id, data, license }) => {\n if (nativeId !== this.nativeId) return;\n // Android sends 'data', iOS sends 'license'\n this.onPrepareLicense(id, data || license);\n }\n )\n );\n }\n\n /**\n * iOS only.\n *\n * Applies the user-defined `prepareCertificate` function to native's `certificate` data and store\n * the result back in `DrmModule`.\n *\n * Called from native code when `FairplayConfig.prepareCertificate` is dispatched.\n *\n * @param certificate - Base64 encoded certificate data.\n */\n private onPrepareCertificate = (id: string, certificate: string) => {\n if (this.config?.fairplay?.prepareCertificate) {\n const result = this.config?.fairplay?.prepareCertificate?.(certificate);\n DrmModule.setPreparedCertificate(id, result);\n }\n };\n\n /**\n * Applies the user-defined `prepareMessage` function to native's `message` data and store\n * the result back in `DrmModule`.\n *\n * Called from native code when `prepareMessage` is dispatched.\n *\n * @param message - Base64 encoded message data.\n * @param assetId - Optional asset ID. Only sent by iOS.\n */\n private onPrepareMessage = (\n id: string,\n message?: string,\n assetId?: string\n ) => {\n if (!message) {\n DrmModule.setPreparedMessage(id, undefined);\n return;\n }\n const config =\n Platform.OS === 'ios' ? this.config?.fairplay : this.config?.widevine;\n if (config && config.prepareMessage) {\n const result =\n Platform.OS === 'ios'\n ? (config as FairplayConfig).prepareMessage?.(message, assetId!)\n : (config as WidevineConfig).prepareMessage?.(message);\n DrmModule.setPreparedMessage(id, result);\n }\n };\n\n /**\n * iOS only.\n *\n * Applies the user-defined `prepareSyncMessage` function to native's `syncMessage` data and\n * store the result back in `DrmModule`.\n *\n * Called from native code when `FairplayConfig.prepareSyncMessage` is dispatched.\n *\n * @param syncMessage - Base64 encoded sync SPC message data.\n */\n private onPrepareSyncMessage = (\n id: string,\n syncMessage: string,\n assetId: string\n ) => {\n if (this.config?.fairplay?.prepareSyncMessage) {\n const result = this.config?.fairplay?.prepareSyncMessage?.(\n syncMessage,\n assetId\n );\n DrmModule.setPreparedSyncMessage(id, result);\n }\n };\n\n /**\n * Applies the user-defined `prepareLicense` function to native's `license` data and store\n * the result back in `DrmModule`.\n *\n * Called from native code when `prepareLicense` is dispatched.\n *\n * @param license - Base64 encoded license data.\n */\n private onPrepareLicense = (id: string, license?: string) => {\n if (!license) {\n DrmModule.setPreparedLicense(id, undefined);\n return;\n }\n const prepareLicense =\n Platform.OS === 'ios'\n ? this.config?.fairplay?.prepareLicense\n : this.config?.widevine?.prepareLicense;\n if (prepareLicense) {\n DrmModule.setPreparedLicense(id, prepareLicense(license));\n }\n };\n\n /**\n * iOS only.\n *\n * Applies the user-defined `prepareLicenseServerUrl` function to native's `licenseServerUrl` data\n * and store the result back in `DrmModule`.\n *\n * Called from native code when `FairplayConfig.prepareLicenseServerUrl` is dispatched.\n *\n * @param licenseServerUrl - The license server URL string.\n */\n private onPrepareLicenseServerUrl = (\n id: string,\n licenseServerUrl: string\n ) => {\n if (this.config?.fairplay?.prepareLicenseServerUrl) {\n const result =\n this.config?.fairplay?.prepareLicenseServerUrl?.(licenseServerUrl);\n DrmModule.setPreparedLicenseServerUrl(id, result);\n }\n };\n\n /**\n * iOS only.\n *\n * Applies the user-defined `prepareContentId` function to native's `contentId` string\n * and store the result back in `DrmModule`.\n *\n * Called from native code when `FairplayConfig.prepareContentId` is dispatched.\n *\n * @param contentId - The extracted contentId string.\n */\n private onPrepareContentId = (id: string, contentId: string) => {\n console.log('onPrepareContentId', contentId);\n if (this.config?.fairplay?.prepareContentId) {\n const result = this.config?.fairplay?.prepareContentId?.(contentId);\n DrmModule.setPreparedContentId(id, result);\n }\n };\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drm/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Platform } from 'react-native';\nimport { EventSubscription } from 'expo-modules-core';\nimport NativeInstance, { NativeInstanceConfig } from '../nativeInstance';\nimport { FairplayConfig } from './fairplayConfig';\nimport { WidevineConfig } from './widevineConfig';\nimport DrmModule from './drmModule';\n\n// Export config types from DRM module.\nexport { FairplayConfig, WidevineConfig };\n\n/**\n * Represents the general Streaming DRM config.\n */\nexport interface DrmConfig extends NativeInstanceConfig {\n /**\n * FairPlay specific configuration.\n *\n * @platform iOS\n */\n fairplay?: FairplayConfig;\n /**\n * Widevine specific configuration.\n *\n * @platform Android, iOS (only for casting).\n */\n widevine?: WidevineConfig;\n}\n\n/**\n * Represents a native DRM configuration object.\n * @internal\n */\nexport class Drm extends NativeInstance<DrmConfig> {\n /**\n * Whether this object's native instance has been created.\n */\n isInitialized = false;\n /**\n * Whether this object's native instance has been disposed.\n */\n isDestroyed = false;\n\n private eventSubscriptions: EventSubscription[] = [];\n\n /**\n * Allocates the DRM config instance and its resources natively.\n */\n initialize = async () => {\n if (!this.isInitialized) {\n // Set up event listeners for DRM preparation callbacks\n this.setupEventListeners();\n\n // Create native configuration object using Expo module.\n if (this.config) {\n await DrmModule.initializeWithConfig(this.nativeId, this.config);\n }\n this.isInitialized = true;\n }\n };\n\n /**\n * Destroys the native DRM config and releases all of its allocated resources.\n */\n destroy = async () => {\n if (!this.isDestroyed) {\n await DrmModule.destroy(this.nativeId);\n // Clean up event subscriptions\n this.eventSubscriptions.forEach((subscription) => subscription.remove());\n this.eventSubscriptions = [];\n this.isDestroyed = true;\n }\n };\n\n /**\n * Sets up event listeners for all DRM preparation callbacks\n */\n private setupEventListeners() {\n // iOS-only events\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareCertificate',\n ({ nativeId, id, certificate }) => {\n if (nativeId !== this.nativeId) return;\n this.onPrepareCertificate(id, certificate);\n }\n )\n );\n\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareSyncMessage',\n ({ nativeId, id, syncMessage, assetId }) => {\n if (nativeId !== this.nativeId) return;\n this.onPrepareSyncMessage(id, syncMessage, assetId);\n }\n )\n );\n\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareLicenseServerUrl',\n ({ nativeId, id, licenseServerUrl }) => {\n if (nativeId !== this.nativeId) return;\n this.onPrepareLicenseServerUrl(id, licenseServerUrl);\n }\n )\n );\n\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareContentId',\n ({ nativeId, id, contentId }) => {\n if (nativeId !== this.nativeId) return;\n this.onPrepareContentId(id, contentId);\n }\n )\n );\n\n // Cross-platform events\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareMessage',\n ({ nativeId, id, data, message, assetId }) => {\n if (nativeId !== this.nativeId) return;\n // Android sends 'data', iOS sends 'message'\n this.onPrepareMessage(id, data || message, assetId);\n }\n )\n );\n\n this.eventSubscriptions.push(\n DrmModule.addListener(\n 'onPrepareLicense',\n ({ nativeId, id, data, license }) => {\n if (nativeId !== this.nativeId) return;\n // Android sends 'data', iOS sends 'license'\n this.onPrepareLicense(id, data || license);\n }\n )\n );\n }\n\n /**\n * iOS only.\n *\n * Applies the user-defined `prepareCertificate` function to native's `certificate` data and store\n * the result back in `DrmModule`.\n *\n * Called from native code when `FairplayConfig.prepareCertificate` is dispatched.\n *\n * @param certificate - Base64 encoded certificate data.\n */\n private onPrepareCertificate = (id: string, certificate: string) => {\n if (this.config?.fairplay?.prepareCertificate) {\n const result = this.config?.fairplay?.prepareCertificate?.(certificate);\n DrmModule.setPreparedCertificate(id, result);\n }\n };\n\n /**\n * Applies the user-defined `prepareMessage` function to native's `message` data and store\n * the result back in `DrmModule`.\n *\n * Called from native code when `prepareMessage` is dispatched.\n *\n * @param message - Base64 encoded message data.\n * @param assetId - Optional asset ID. Only sent by iOS.\n */\n private onPrepareMessage = (\n id: string,\n message?: string,\n assetId?: string\n ) => {\n if (!message) {\n DrmModule.setPreparedMessage(id, undefined);\n return;\n }\n const config =\n Platform.OS === 'ios' ? this.config?.fairplay : this.config?.widevine;\n if (config && config.prepareMessage) {\n const result =\n Platform.OS === 'ios'\n ? (config as FairplayConfig).prepareMessage?.(message, assetId!)\n : (config as WidevineConfig).prepareMessage?.(message);\n DrmModule.setPreparedMessage(id, result);\n }\n };\n\n /**\n * iOS only.\n *\n * Applies the user-defined `prepareSyncMessage` function to native's `syncMessage` data and\n * store the result back in `DrmModule`.\n *\n * Called from native code when `FairplayConfig.prepareSyncMessage` is dispatched.\n *\n * @param syncMessage - Base64 encoded sync SPC message data.\n */\n private onPrepareSyncMessage = (\n id: string,\n syncMessage: string,\n assetId: string\n ) => {\n if (this.config?.fairplay?.prepareSyncMessage) {\n const result = this.config?.fairplay?.prepareSyncMessage?.(\n syncMessage,\n assetId\n );\n DrmModule.setPreparedSyncMessage(id, result);\n }\n };\n\n /**\n * Applies the user-defined `prepareLicense` function to native's `license` data and store\n * the result back in `DrmModule`.\n *\n * Called from native code when `prepareLicense` is dispatched.\n *\n * @param license - Base64 encoded license data.\n */\n private onPrepareLicense = (id: string, license?: string) => {\n if (!license) {\n DrmModule.setPreparedLicense(id, undefined);\n return;\n }\n const prepareLicense =\n Platform.OS === 'ios'\n ? this.config?.fairplay?.prepareLicense\n : this.config?.widevine?.prepareLicense;\n if (prepareLicense) {\n DrmModule.setPreparedLicense(id, prepareLicense(license));\n }\n };\n\n /**\n * iOS only.\n *\n * Applies the user-defined `prepareLicenseServerUrl` function to native's `licenseServerUrl` data\n * and store the result back in `DrmModule`.\n *\n * Called from native code when `FairplayConfig.prepareLicenseServerUrl` is dispatched.\n *\n * @param licenseServerUrl - The license server URL string.\n */\n private onPrepareLicenseServerUrl = (\n id: string,\n licenseServerUrl: string\n ) => {\n if (this.config?.fairplay?.prepareLicenseServerUrl) {\n const result =\n this.config?.fairplay?.prepareLicenseServerUrl?.(licenseServerUrl);\n DrmModule.setPreparedLicenseServerUrl(id, result);\n }\n };\n\n /**\n * iOS only.\n *\n * Applies the user-defined `prepareContentId` function to native's `contentId` string\n * and store the result back in `DrmModule`.\n *\n * Called from native code when `FairplayConfig.prepareContentId` is dispatched.\n *\n * @param contentId - The extracted contentId string.\n */\n private onPrepareContentId = (id: string, contentId: string) => {\n console.log('onPrepareContentId', contentId);\n if (this.config?.fairplay?.prepareContentId) {\n const result = this.config?.fairplay?.prepareContentId?.(contentId);\n DrmModule.setPreparedContentId(id, result);\n }\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Represents a Widevine Streaming DRM config.
3
- * @remarks Platform: Android, iOS (only for casting).
3
+ * @platform Android, iOS (only for casting).
4
4
  */
5
5
  export interface WidevineConfig {
6
6
  /**
@@ -19,7 +19,7 @@ export interface WidevineConfig {
19
19
  * Note that both the passed `message` data and this block return value should be a Base64 string.
20
20
  * So use whatever solution suits you best to handle Base64 in React Native.
21
21
  *
22
- * @remarks Platform: Android
22
+ * @platform Android
23
23
  *
24
24
  * @param message - Base64 encoded message data.
25
25
  * @returns The processed Base64 encoded message.
@@ -33,7 +33,7 @@ export interface WidevineConfig {
33
33
  * Note that both the passed `license` data and this block return value should be a Base64 string.
34
34
  * So use whatever solution suits you best to handle Base64 in React Native.
35
35
  *
36
- * @remarks Platform: Android
36
+ * @platform Android
37
37
  *
38
38
  * @param license - Base64 encoded license data.
39
39
  * @returns The processed Base64 encoded license.
@@ -42,7 +42,7 @@ export interface WidevineConfig {
42
42
  /**
43
43
  * Set widevine's preferred security level.
44
44
  *
45
- * @remarks Platform: Android
45
+ * @platform Android
46
46
  */
47
47
  preferredSecurityLevel?: string;
48
48
  /**
@@ -51,7 +51,7 @@ export interface WidevineConfig {
51
51
  * as the same DRM scheme information.
52
52
  * Default: `false`
53
53
  *
54
- * @remarks Platform: Android
54
+ * @platform Android
55
55
  */
56
56
  shouldKeepDrmSessionsAlive?: boolean;
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"widevineConfig.js","sourceRoot":"","sources":["../../src/drm/widevineConfig.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Represents a Widevine Streaming DRM config.\n * @remarks Platform: Android, iOS (only for casting).\n */\nexport interface WidevineConfig {\n /**\n * The DRM license acquisition URL.\n */\n licenseUrl: string;\n /**\n * A map containing the HTTP request headers, or null.\n */\n httpHeaders?: Record<string, string>;\n /**\n * A block to prepare the data which is sent as the body of the POST license request.\n * As many DRM providers expect different, vendor-specific messages, this can be done using\n * this user-defined block.\n *\n * Note that both the passed `message` data and this block return value should be a Base64 string.\n * So use whatever solution suits you best to handle Base64 in React Native.\n *\n * @remarks Platform: Android\n *\n * @param message - Base64 encoded message data.\n * @returns The processed Base64 encoded message.\n */\n prepareMessage?: (message: string) => string;\n /**\n * A block to prepare the loaded CKC Data before passing it to the system. This is needed if the\n * server responds with anything else than the license, e.g. if the license is wrapped into a JSON\n * object.\n *\n * Note that both the passed `license` data and this block return value should be a Base64 string.\n * So use whatever solution suits you best to handle Base64 in React Native.\n *\n * @remarks Platform: Android\n *\n * @param license - Base64 encoded license data.\n * @returns The processed Base64 encoded license.\n */\n prepareLicense?: (license: string) => string;\n /**\n * Set widevine's preferred security level.\n *\n * @remarks Platform: Android\n */\n preferredSecurityLevel?: string;\n /**\n * Indicates if the DRM sessions should be kept alive after a source is unloaded.\n * This allows DRM sessions to be reused over several different source items with the same DRM configuration as well\n * as the same DRM scheme information.\n * Default: `false`\n *\n * @remarks Platform: Android\n */\n shouldKeepDrmSessionsAlive?: boolean;\n}\n"]}
1
+ {"version":3,"file":"widevineConfig.js","sourceRoot":"","sources":["../../src/drm/widevineConfig.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Represents a Widevine Streaming DRM config.\n * @platform Android, iOS (only for casting).\n */\nexport interface WidevineConfig {\n /**\n * The DRM license acquisition URL.\n */\n licenseUrl: string;\n /**\n * A map containing the HTTP request headers, or null.\n */\n httpHeaders?: Record<string, string>;\n /**\n * A block to prepare the data which is sent as the body of the POST license request.\n * As many DRM providers expect different, vendor-specific messages, this can be done using\n * this user-defined block.\n *\n * Note that both the passed `message` data and this block return value should be a Base64 string.\n * So use whatever solution suits you best to handle Base64 in React Native.\n *\n * @platform Android\n *\n * @param message - Base64 encoded message data.\n * @returns The processed Base64 encoded message.\n */\n prepareMessage?: (message: string) => string;\n /**\n * A block to prepare the loaded CKC Data before passing it to the system. This is needed if the\n * server responds with anything else than the license, e.g. if the license is wrapped into a JSON\n * object.\n *\n * Note that both the passed `license` data and this block return value should be a Base64 string.\n * So use whatever solution suits you best to handle Base64 in React Native.\n *\n * @platform Android\n *\n * @param license - Base64 encoded license data.\n * @returns The processed Base64 encoded license.\n */\n prepareLicense?: (license: string) => string;\n /**\n * Set widevine's preferred security level.\n *\n * @platform Android\n */\n preferredSecurityLevel?: string;\n /**\n * Indicates if the DRM sessions should be kept alive after a source is unloaded.\n * This allows DRM sessions to be reused over several different source items with the same DRM configuration as well\n * as the same DRM scheme information.\n * Default: `false`\n *\n * @platform Android\n */\n shouldKeepDrmSessionsAlive?: boolean;\n}\n"]}
package/build/events.d.ts CHANGED
@@ -304,55 +304,55 @@ export interface SubtitleChangedEvent extends Event {
304
304
  /**
305
305
  * Emitted when the player enters Picture in Picture mode.
306
306
  *
307
- * @remarks Platform: iOS, Android
307
+ * @platform iOS, Android
308
308
  */
309
309
  export type PictureInPictureEnterEvent = Event;
310
310
  /**
311
311
  * Emitted when the player exits Picture in Picture mode.
312
312
  *
313
- * @remarks Platform: iOS, Android
313
+ * @platform iOS, Android
314
314
  */
315
315
  export type PictureInPictureExitEvent = Event;
316
316
  /**
317
317
  * Emitted when the player has finished entering Picture in Picture mode on iOS.
318
318
  *
319
- * @remarks Platform: iOS
319
+ * @platform iOS
320
320
  */
321
321
  export type PictureInPictureEnteredEvent = Event;
322
322
  /**
323
323
  * Emitted when the player has finished exiting Picture in Picture mode on iOS.
324
324
  *
325
- * @remarks Platform: iOS
325
+ * @platform iOS
326
326
  */
327
327
  export type PictureInPictureExitedEvent = Event;
328
328
  /**
329
329
  * Emitted when the fullscreen functionality has been enabled.
330
330
  *
331
- * @remarks Platform: iOS, Android
331
+ * @platform iOS, Android
332
332
  */
333
333
  export type FullscreenEnabledEvent = Event;
334
334
  /**
335
335
  * Emitted when the fullscreen functionality has been disabled.
336
336
  *
337
- * @remarks Platform: iOS, Android
337
+ * @platform iOS, Android
338
338
  */
339
339
  export type FullscreenDisabledEvent = Event;
340
340
  /**
341
341
  * Emitted when the player enters fullscreen mode.
342
342
  *
343
- * @remarks Platform: iOS, Android
343
+ * @platform iOS, Android
344
344
  */
345
345
  export type FullscreenEnterEvent = Event;
346
346
  /**
347
347
  * Emitted when the player exits fullscreen mode.
348
348
  *
349
- * @remarks Platform: iOS, Android
349
+ * @platform iOS, Android
350
350
  */
351
351
  export type FullscreenExitEvent = Event;
352
352
  /**
353
353
  * Emitted when the availability of the Picture in Picture mode changed on Android.
354
354
  *
355
- * @remarks Platform: Android
355
+ * @platform Android
356
356
  */
357
357
  export interface PictureInPictureAvailabilityChangedEvent extends Event {
358
358
  /**
@@ -635,7 +635,7 @@ export interface DownloadFinishedEvent extends Event {
635
635
  }
636
636
  /**
637
637
  * Emitted when the player transitions from one playback speed to another.
638
- * @remarks Platform: iOS, tvOS
638
+ * @platform iOS, tvOS
639
639
  */
640
640
  export interface PlaybackSpeedChangedEvent extends Event {
641
641
  /**