perf: ensure we do not provide callback to native if no callback provided from app (#3735)
* perf: ensure we do not provide callback to native if no callback provided from app * perf: remove onIdle Callback * chore: code review
This commit is contained in:
parent
8eb31e82c7
commit
c59d00a0f0
@ -1252,6 +1252,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
|||||||
|
|
||||||
// When timeMetadata is read the event onTimedMetadata is triggered
|
// When timeMetadata is read the event onTimedMetadata is triggered
|
||||||
func handleTimeMetadataChange(timedMetadata: [AVMetadataItem]) {
|
func handleTimeMetadataChange(timedMetadata: [AVMetadataItem]) {
|
||||||
|
guard onTimedMetadata != nil else { return }
|
||||||
var metadata: [[String: String?]?] = []
|
var metadata: [[String: String?]?] = []
|
||||||
for item in timedMetadata {
|
for item in timedMetadata {
|
||||||
let value = item.value as? String
|
let value = item.value as? String
|
||||||
@ -1510,6 +1511,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
|||||||
|
|
||||||
@objc
|
@objc
|
||||||
func handleAVPlayerAccess(notification: NSNotification!) {
|
func handleAVPlayerAccess(notification: NSNotification!) {
|
||||||
|
guard onVideoBandwidthUpdate != nil else { return }
|
||||||
guard let accessLog = (notification.object as? AVPlayerItem)?.accessLog() else {
|
guard let accessLog = (notification.object as? AVPlayerItem)?.accessLog() else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -339,10 +339,6 @@ const Video = forwardRef<VideoRef, ReactVideoProps>(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// android only
|
// android only
|
||||||
const onVideoIdle = useCallback(() => {
|
|
||||||
onIdle?.();
|
|
||||||
}, [onIdle]);
|
|
||||||
|
|
||||||
const _onTimedMetadata = useCallback(
|
const _onTimedMetadata = useCallback(
|
||||||
(e: NativeSyntheticEvent<OnTimedMetadataData>) => {
|
(e: NativeSyntheticEvent<OnTimedMetadataData>) => {
|
||||||
onTimedMetadata?.(e.nativeEvent);
|
onTimedMetadata?.(e.nativeEvent);
|
||||||
@ -542,38 +538,62 @@ const Video = forwardRef<VideoRef, ReactVideoProps>(
|
|||||||
selectedAudioTrack={_selectedAudioTrack}
|
selectedAudioTrack={_selectedAudioTrack}
|
||||||
selectedVideoTrack={_selectedVideoTrack}
|
selectedVideoTrack={_selectedVideoTrack}
|
||||||
onGetLicense={useExternalGetLicense ? onGetLicense : undefined}
|
onGetLicense={useExternalGetLicense ? onGetLicense : undefined}
|
||||||
onVideoLoad={onVideoLoad as (e: NativeSyntheticEvent<object>) => void}
|
onVideoLoad={
|
||||||
onVideoLoadStart={onVideoLoadStart}
|
onLoad || hasPoster
|
||||||
onVideoError={onVideoError}
|
? (onVideoLoad as (e: NativeSyntheticEvent<object>) => void)
|
||||||
onVideoProgress={onVideoProgress}
|
: undefined
|
||||||
onVideoSeek={onVideoSeek}
|
}
|
||||||
|
onVideoLoadStart={
|
||||||
|
onLoadStart || hasPoster ? onVideoLoadStart : undefined
|
||||||
|
}
|
||||||
|
onVideoError={onError ? onVideoError : undefined}
|
||||||
|
onVideoProgress={onProgress ? onVideoProgress : undefined}
|
||||||
|
onVideoSeek={onSeek ? onVideoSeek : undefined}
|
||||||
onVideoEnd={onEnd}
|
onVideoEnd={onEnd}
|
||||||
onVideoBuffer={onVideoBuffer}
|
onVideoBuffer={onBuffer ? onVideoBuffer : undefined}
|
||||||
onVideoPlaybackStateChanged={onVideoPlaybackStateChanged}
|
onVideoPlaybackStateChanged={
|
||||||
onVideoBandwidthUpdate={_onBandwidthUpdate}
|
onPlaybackRateChange ? onVideoPlaybackStateChanged : undefined
|
||||||
onTimedMetadata={_onTimedMetadata}
|
}
|
||||||
onAudioTracks={_onAudioTracks}
|
onVideoBandwidthUpdate={
|
||||||
onTextTracks={_onTextTracks}
|
onBandwidthUpdate ? _onBandwidthUpdate : undefined
|
||||||
onTextTrackDataChanged={_onTextTrackDataChanged}
|
}
|
||||||
onVideoTracks={_onVideoTracks}
|
onTimedMetadata={onTimedMetadata ? _onTimedMetadata : undefined}
|
||||||
|
onAudioTracks={onAudioTracks ? _onAudioTracks : undefined}
|
||||||
|
onTextTracks={onTextTracks ? _onTextTracks : undefined}
|
||||||
|
onTextTrackDataChanged={
|
||||||
|
onTextTrackDataChanged ? _onTextTrackDataChanged : undefined
|
||||||
|
}
|
||||||
|
onVideoTracks={onVideoTracks ? _onVideoTracks : undefined}
|
||||||
onVideoFullscreenPlayerDidDismiss={onFullscreenPlayerDidDismiss}
|
onVideoFullscreenPlayerDidDismiss={onFullscreenPlayerDidDismiss}
|
||||||
onVideoFullscreenPlayerDidPresent={onFullscreenPlayerDidPresent}
|
onVideoFullscreenPlayerDidPresent={onFullscreenPlayerDidPresent}
|
||||||
onVideoFullscreenPlayerWillDismiss={onFullscreenPlayerWillDismiss}
|
onVideoFullscreenPlayerWillDismiss={onFullscreenPlayerWillDismiss}
|
||||||
onVideoFullscreenPlayerWillPresent={onFullscreenPlayerWillPresent}
|
onVideoFullscreenPlayerWillPresent={onFullscreenPlayerWillPresent}
|
||||||
onVideoExternalPlaybackChange={onVideoExternalPlaybackChange}
|
onVideoExternalPlaybackChange={
|
||||||
onVideoIdle={onVideoIdle}
|
onExternalPlaybackChange ? onVideoExternalPlaybackChange : undefined
|
||||||
onAudioFocusChanged={_onAudioFocusChanged}
|
}
|
||||||
onReadyForDisplay={_onReadyForDisplay}
|
onVideoIdle={onIdle}
|
||||||
onPlaybackRateChange={_onPlaybackRateChange}
|
onAudioFocusChanged={
|
||||||
onVolumeChange={_onVolumeChange}
|
onAudioFocusChanged ? _onAudioFocusChanged : undefined
|
||||||
|
}
|
||||||
|
onReadyForDisplay={onReadyForDisplay ? _onReadyForDisplay : undefined}
|
||||||
|
onPlaybackRateChange={
|
||||||
|
onPlaybackRateChange ? _onPlaybackRateChange : undefined
|
||||||
|
}
|
||||||
|
onVolumeChange={onVolumeChange ? _onVolumeChange : undefined}
|
||||||
onVideoAudioBecomingNoisy={onAudioBecomingNoisy}
|
onVideoAudioBecomingNoisy={onAudioBecomingNoisy}
|
||||||
onPictureInPictureStatusChanged={_onPictureInPictureStatusChanged}
|
onPictureInPictureStatusChanged={
|
||||||
|
onPictureInPictureStatusChanged
|
||||||
|
? _onPictureInPictureStatusChanged
|
||||||
|
: undefined
|
||||||
|
}
|
||||||
onRestoreUserInterfaceForPictureInPictureStop={
|
onRestoreUserInterfaceForPictureInPictureStop={
|
||||||
onRestoreUserInterfaceForPictureInPictureStop
|
onRestoreUserInterfaceForPictureInPictureStop
|
||||||
}
|
}
|
||||||
onVideoAspectRatio={_onVideoAspectRatio}
|
onVideoAspectRatio={onAspectRatio ? _onVideoAspectRatio : undefined}
|
||||||
onReceiveAdEvent={
|
onReceiveAdEvent={
|
||||||
_onReceiveAdEvent as (e: NativeSyntheticEvent<object>) => void
|
onReceiveAdEvent
|
||||||
|
? (_onReceiveAdEvent as (e: NativeSyntheticEvent<object>) => void)
|
||||||
|
: undefined
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
{hasPoster && showPoster ? (
|
{hasPoster && showPoster ? (
|
||||||
|
Loading…
Reference in New Issue
Block a user