#import #import "AVKit/AVKit.h" #import "UIView+FindUIViewController.h" #import "RCTVideoPlayerViewController.h" #import "RCTVideoPlayerViewControllerDelegate.h" #import #import @import GoogleInteractiveMediaAds; #if __has_include() #import #import #import #endif @class RCTEventDispatcher; #if __has_include() @interface RCTVideo : UIView #elif TARGET_OS_TV @interface RCTVideo : UIView #else @interface RCTVideo : UIView #endif @property (nonatomic, copy) RCTDirectEventBlock onVideoLoadStart; @property (nonatomic, copy) RCTDirectEventBlock onVideoLoad; @property (nonatomic, copy) RCTDirectEventBlock onVideoBuffer; @property (nonatomic, copy) RCTDirectEventBlock onVideoError; @property (nonatomic, copy) RCTDirectEventBlock onVideoProgress; @property (nonatomic, copy) RCTDirectEventBlock onBandwidthUpdate; @property (nonatomic, copy) RCTDirectEventBlock onVideoSeek; @property (nonatomic, copy) RCTDirectEventBlock onVideoEnd; @property (nonatomic, copy) RCTDirectEventBlock onTimedMetadata; @property (nonatomic, copy) RCTDirectEventBlock onVideoAudioBecomingNoisy; @property (nonatomic, copy) RCTDirectEventBlock onVideoFullscreenPlayerWillPresent; @property (nonatomic, copy) RCTDirectEventBlock onVideoFullscreenPlayerDidPresent; @property (nonatomic, copy) RCTDirectEventBlock onVideoFullscreenPlayerWillDismiss; @property (nonatomic, copy) RCTDirectEventBlock onVideoFullscreenPlayerDidDismiss; @property (nonatomic, copy) RCTDirectEventBlock onReadyForDisplay; @property (nonatomic, copy) RCTDirectEventBlock onPlaybackStalled; @property (nonatomic, copy) RCTDirectEventBlock onPlaybackResume; @property (nonatomic, copy) RCTDirectEventBlock onPlaybackRateChange; @property (nonatomic, copy) RCTDirectEventBlock onVideoExternalPlaybackChange; @property (nonatomic, copy) RCTDirectEventBlock onPictureInPictureStatusChanged; @property (nonatomic, copy) RCTDirectEventBlock onRestoreUserInterfaceForPictureInPictureStop; @property (nonatomic, copy) RCTDirectEventBlock onGetLicense; typedef NS_ENUM(NSInteger, RCTVideoError) { RCTVideoErrorFromJSPart, RCTVideoErrorLicenseRequestNotOk, RCTVideoErrorNoDataFromLicenseRequest, RCTVideoErrorNoSPC, RCTVideoErrorNoDataRequest, RCTVideoErrorNoCertificateData, RCTVideoErrorNoCertificateURL, RCTVideoErrorNoFairplayDRM, RCTVideoErrorNoDRMData }; /// Playhead used by the SDK to track content video progress and insert mid-rolls. @property(nonatomic, strong) IMAAVPlayerContentPlayhead *contentPlayhead; /// Entry point for the SDK. Used to make ad requests. @property(nonatomic, strong) IMAAdsLoader *adsLoader; /// Main point of interaction with the SDK. Created by the SDK as the result of an ad request. @property(nonatomic, strong) IMAAdsManager *adsManager; - (instancetype)initWithEventDispatcher:(RCTEventDispatcher *)eventDispatcher NS_DESIGNATED_INITIALIZER; - (AVPlayerViewController*)createPlayerViewController:(AVPlayer*)player withPlayerItem:(AVPlayerItem*)playerItem; - (void)save:(NSDictionary *)options resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject; - (void)setLicenseResult:(NSString * )license; - (BOOL)setLicenseResultError:(NSString * )error; @end