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.
- package/CHANGELOG.md +34 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/bitmovin/player/reactnative/PlayerModule.kt +47 -0
- package/android/src/main/java/com/bitmovin/player/reactnative/converter/JsonConverter.kt +32 -3
- package/build/adaptationConfig.d.ts +1 -1
- package/build/adaptationConfig.js.map +1 -1
- package/build/advertising.d.ts +54 -1
- package/build/advertising.d.ts.map +1 -1
- package/build/advertising.js.map +1 -1
- package/build/audioSession.d.ts +3 -3
- package/build/audioSession.js +2 -2
- package/build/audioSession.js.map +1 -1
- package/build/bitmovinCastManager.d.ts +3 -3
- package/build/bitmovinCastManager.js +2 -2
- package/build/bitmovinCastManager.js.map +1 -1
- package/build/bufferConfig.d.ts +2 -2
- package/build/bufferConfig.js.map +1 -1
- package/build/components/PlayerView/events.d.ts +16 -16
- package/build/components/PlayerView/events.js.map +1 -1
- package/build/components/PlayerView/nativeEvents.d.ts +16 -16
- package/build/components/PlayerView/nativeEvents.js.map +1 -1
- package/build/components/PlayerView/pictureInPictureConfig.d.ts +1 -1
- package/build/components/PlayerView/pictureInPictureConfig.js.map +1 -1
- package/build/components/PlayerView/playerViewConfig.d.ts +2 -2
- package/build/components/PlayerView/playerViewConfig.js.map +1 -1
- package/build/decoder/decoderConfig.d.ts +2 -2
- package/build/decoder/decoderConfig.js.map +1 -1
- package/build/drm/index.d.ts +2 -2
- package/build/drm/index.js.map +1 -1
- package/build/drm/widevineConfig.d.ts +5 -5
- package/build/drm/widevineConfig.js.map +1 -1
- package/build/events.d.ts +10 -10
- package/build/events.js.map +1 -1
- package/build/media.d.ts +4 -0
- package/build/media.d.ts.map +1 -1
- package/build/media.js.map +1 -1
- package/build/modules/PlayerModule.d.ts +12 -1
- package/build/modules/PlayerModule.d.ts.map +1 -1
- package/build/modules/PlayerModule.js.map +1 -1
- package/build/offline/offlineContentConfig.d.ts +1 -1
- package/build/offline/offlineContentConfig.js.map +1 -1
- package/build/offline/offlineContentManager.d.ts +2 -2
- package/build/offline/offlineContentManager.js +2 -2
- package/build/offline/offlineContentManager.js.map +1 -1
- package/build/offline/offlineContentManagerListener.d.ts +13 -13
- package/build/offline/offlineContentManagerListener.js +1 -1
- package/build/offline/offlineContentManagerListener.js.map +1 -1
- package/build/offline/offlineContentOptions.d.ts +2 -2
- package/build/offline/offlineContentOptions.js.map +1 -1
- package/build/offline/offlineDownloadRequest.d.ts +1 -1
- package/build/offline/offlineDownloadRequest.js.map +1 -1
- package/build/offline/offlineSourceOptions.d.ts +2 -2
- package/build/offline/offlineSourceOptions.js.map +1 -1
- package/build/offline/offlineState.d.ts +1 -1
- package/build/offline/offlineState.js +1 -1
- package/build/offline/offlineState.js.map +1 -1
- package/build/playbackConfig.d.ts +1 -1
- package/build/playbackConfig.js.map +1 -1
- package/build/player.d.ts +13 -11
- package/build/player.d.ts.map +1 -1
- package/build/player.js +42 -11
- package/build/player.js.map +1 -1
- package/build/source.d.ts +2 -2
- package/build/source.js +1 -1
- package/build/source.js.map +1 -1
- package/build/styleConfig.d.ts +5 -5
- package/build/styleConfig.js +1 -1
- package/build/styleConfig.js.map +1 -1
- package/build/subtitleFormat.d.ts +5 -5
- package/build/subtitleFormat.js +5 -5
- package/build/subtitleFormat.js.map +1 -1
- package/build/subtitleTrack.d.ts +1 -1
- package/build/subtitleTrack.js.map +1 -1
- package/build/tweaksConfig.d.ts +15 -15
- package/build/tweaksConfig.js.map +1 -1
- package/ios/FullscreenHandlerModule.swift +26 -3
- package/ios/LockedBox.swift +6 -0
- package/ios/PlayerModule.swift +40 -0
- package/ios/RCTConvert+BitmovinPlayer.swift +41 -0
- package/ios/RNBitmovinPlayer.podspec +1 -1
- package/package.json +1 -1
- package/plugin/build/withBitmovinConfig.js +8 -2
- package/plugin/src/withAppGradleDependencies.ts +24 -21
- package/plugin/src/withBitmovinAndroidConfig.ts +4 -1
- package/plugin/src/withBitmovinConfig.ts +12 -3
- package/plugin/src/withBitmovinIosConfig.ts +4 -1
- package/src/adaptationConfig.ts +1 -1
- package/src/advertising.ts +56 -1
- package/src/audioSession.ts +3 -3
- package/src/bitmovinCastManager.ts +3 -3
- package/src/bufferConfig.ts +2 -2
- package/src/components/PlayerView/events.ts +16 -16
- package/src/components/PlayerView/nativeEvents.ts +16 -16
- package/src/components/PlayerView/pictureInPictureConfig.ts +1 -1
- package/src/components/PlayerView/playerViewConfig.ts +2 -2
- package/src/decoder/decoderConfig.ts +2 -2
- package/src/drm/index.ts +2 -2
- package/src/drm/widevineConfig.ts +5 -5
- package/src/events.ts +10 -10
- package/src/media.ts +4 -0
- package/src/modules/PlayerModule.ts +18 -2
- package/src/offline/offlineContentConfig.ts +1 -1
- package/src/offline/offlineContentManager.ts +2 -2
- package/src/offline/offlineContentManagerListener.ts +13 -13
- package/src/offline/offlineContentOptions.ts +2 -2
- package/src/offline/offlineDownloadRequest.ts +1 -1
- package/src/offline/offlineSourceOptions.ts +2 -2
- package/src/offline/offlineState.ts +1 -1
- package/src/playbackConfig.ts +1 -1
- package/src/player.ts +47 -12
- package/src/source.ts +2 -2
- package/src/styleConfig.ts +5 -5
- package/src/subtitleFormat.ts +5 -5
- package/src/subtitleTrack.ts +1 -1
- 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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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"]}
|
|
@@ -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 * @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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 * @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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 * @
|
|
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"]}
|
package/build/drm/index.d.ts
CHANGED
|
@@ -9,13 +9,13 @@ export interface DrmConfig extends NativeInstanceConfig {
|
|
|
9
9
|
/**
|
|
10
10
|
* FairPlay specific configuration.
|
|
11
11
|
*
|
|
12
|
-
* @
|
|
12
|
+
* @platform iOS
|
|
13
13
|
*/
|
|
14
14
|
fairplay?: FairplayConfig;
|
|
15
15
|
/**
|
|
16
16
|
* Widevine specific configuration.
|
|
17
17
|
*
|
|
18
|
-
* @
|
|
18
|
+
* @platform Android, iOS (only for casting).
|
|
19
19
|
*/
|
|
20
20
|
widevine?: WidevineConfig;
|
|
21
21
|
}
|
package/build/drm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 * @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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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 * @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
638
|
+
* @platform iOS, tvOS
|
|
639
639
|
*/
|
|
640
640
|
export interface PlaybackSpeedChangedEvent extends Event {
|
|
641
641
|
/**
|