Loading Video.js +5 −1 Changes for Video.js: 5 added lines, 1 removed line. Original line number Diff line number Diff line import React, {Component} from 'react'; import PropTypes from 'prop-types'; import {StyleSheet, requireNativeComponent, NativeModules, View, ViewPropTypes, Image, Platform} from 'react-native'; import {StyleSheet, requireNativeComponent, NativeModules, View, ViewPropTypes, Image, Platform, findNodeHandle} from 'react-native'; import resolveAssetSource from 'react-native/Libraries/Image/resolveAssetSource'; import TextTrackType from './TextTrackType'; import VideoResizeMode from './VideoResizeMode.js'; Loading Loading @@ -71,6 +71,10 @@ export default class Video extends Component { this.setNativeProps({ fullscreen: false }); }; saveAsync = async (options?) => { return await NativeModules.VideoManager.save(options, findNodeHandle(this._root)); } _assignRoot = (component) => { this._root = component; }; Loading ios/Video/RCTVideo.h +3 −0 Changes for ios/Video/RCTVideo.h: 3 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ #import "RCTVideoPlayerViewController.h" #import "RCTVideoPlayerViewControllerDelegate.h" #import <React/RCTComponent.h> #import <React/RCTBridgeModule.h> #if __has_include(<react-native-video/RCTVideoCache.h>) #import <react-native-video/RCTVideoCache.h> Loading Loading @@ -41,4 +42,6 @@ - (AVPlayerViewController*)createPlayerViewController:(AVPlayer*)player withPlayerItem:(AVPlayerItem*)playerItem; - (void)save:(NSDictionary *)options resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject; @end ios/Video/RCTVideo.m +155 −167 File changed.Preview size limit exceeded, changes collapsed. Show changes ios/Video/RCTVideoManager.h +2 −1 Changes for ios/Video/RCTVideoManager.h: 2 added lines, 1 removed line. Original line number Diff line number Diff line #import <React/RCTViewManager.h> #import <React/RCTBridgeModule.h> @interface RCTVideoManager : RCTViewManager @interface RCTVideoManager : RCTViewManager <RCTBridgeModule> @end ios/Video/RCTVideoManager.m +18 −3 Changes for ios/Video/RCTVideoManager.m: 18 added lines, 3 removed lines. Original line number Diff line number Diff line #import "RCTVideoManager.h" #import "RCTVideo.h" #import <React/RCTBridge.h> #import <React/RCTUIManager.h> #import <AVFoundation/AVFoundation.h> @implementation RCTVideoManager RCT_EXPORT_MODULE(); @synthesize bridge = _bridge; - (UIView *)view { return [[RCTVideo alloc] initWithEventDispatcher:self.bridge.eventDispatcher]; Loading @@ -16,7 +15,7 @@ RCT_EXPORT_MODULE(); - (dispatch_queue_t)methodQueue { return dispatch_get_main_queue(); return self.bridge.uiManager.methodQueue; } RCT_EXPORT_VIEW_PROPERTY(src, NSDictionary); Loading Loading @@ -59,6 +58,22 @@ RCT_EXPORT_VIEW_PROPERTY(onPlaybackStalled, RCTBubblingEventBlock); RCT_EXPORT_VIEW_PROPERTY(onPlaybackResume, RCTBubblingEventBlock); RCT_EXPORT_VIEW_PROPERTY(onPlaybackRateChange, RCTBubblingEventBlock); RCT_EXPORT_VIEW_PROPERTY(onVideoExternalPlaybackChange, RCTBubblingEventBlock); RCT_EXPORT_VIEW_PROPERTY(onVideoSaved, RCTBubblingEventBlock); RCT_REMAP_METHOD(save, options:(NSDictionary *)options reactTag:(nonnull NSNumber *)reactTag resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { [self.bridge.uiManager prependUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, RCTVideo *> *viewRegistry) { RCTVideo *view = viewRegistry[reactTag]; if (![view isKindOfClass:[RCTVideo class]]) { RCTLogError(@"Invalid view returned from registry, expecting RCTVideo, got: %@", view); } else { [view save:options resolve:resolve reject:reject]; } }]; } - (NSDictionary *)constantsToExport { Loading Loading
Video.js +5 −1 Changes for Video.js: 5 added lines, 1 removed line. Original line number Diff line number Diff line import React, {Component} from 'react'; import PropTypes from 'prop-types'; import {StyleSheet, requireNativeComponent, NativeModules, View, ViewPropTypes, Image, Platform} from 'react-native'; import {StyleSheet, requireNativeComponent, NativeModules, View, ViewPropTypes, Image, Platform, findNodeHandle} from 'react-native'; import resolveAssetSource from 'react-native/Libraries/Image/resolveAssetSource'; import TextTrackType from './TextTrackType'; import VideoResizeMode from './VideoResizeMode.js'; Loading Loading @@ -71,6 +71,10 @@ export default class Video extends Component { this.setNativeProps({ fullscreen: false }); }; saveAsync = async (options?) => { return await NativeModules.VideoManager.save(options, findNodeHandle(this._root)); } _assignRoot = (component) => { this._root = component; }; Loading
ios/Video/RCTVideo.h +3 −0 Changes for ios/Video/RCTVideo.h: 3 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ #import "RCTVideoPlayerViewController.h" #import "RCTVideoPlayerViewControllerDelegate.h" #import <React/RCTComponent.h> #import <React/RCTBridgeModule.h> #if __has_include(<react-native-video/RCTVideoCache.h>) #import <react-native-video/RCTVideoCache.h> Loading Loading @@ -41,4 +42,6 @@ - (AVPlayerViewController*)createPlayerViewController:(AVPlayer*)player withPlayerItem:(AVPlayerItem*)playerItem; - (void)save:(NSDictionary *)options resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject; @end
ios/Video/RCTVideo.m +155 −167 File changed.Preview size limit exceeded, changes collapsed. Show changes
ios/Video/RCTVideoManager.h +2 −1 Changes for ios/Video/RCTVideoManager.h: 2 added lines, 1 removed line. Original line number Diff line number Diff line #import <React/RCTViewManager.h> #import <React/RCTBridgeModule.h> @interface RCTVideoManager : RCTViewManager @interface RCTVideoManager : RCTViewManager <RCTBridgeModule> @end
ios/Video/RCTVideoManager.m +18 −3 Changes for ios/Video/RCTVideoManager.m: 18 added lines, 3 removed lines. Original line number Diff line number Diff line #import "RCTVideoManager.h" #import "RCTVideo.h" #import <React/RCTBridge.h> #import <React/RCTUIManager.h> #import <AVFoundation/AVFoundation.h> @implementation RCTVideoManager RCT_EXPORT_MODULE(); @synthesize bridge = _bridge; - (UIView *)view { return [[RCTVideo alloc] initWithEventDispatcher:self.bridge.eventDispatcher]; Loading @@ -16,7 +15,7 @@ RCT_EXPORT_MODULE(); - (dispatch_queue_t)methodQueue { return dispatch_get_main_queue(); return self.bridge.uiManager.methodQueue; } RCT_EXPORT_VIEW_PROPERTY(src, NSDictionary); Loading Loading @@ -59,6 +58,22 @@ RCT_EXPORT_VIEW_PROPERTY(onPlaybackStalled, RCTBubblingEventBlock); RCT_EXPORT_VIEW_PROPERTY(onPlaybackResume, RCTBubblingEventBlock); RCT_EXPORT_VIEW_PROPERTY(onPlaybackRateChange, RCTBubblingEventBlock); RCT_EXPORT_VIEW_PROPERTY(onVideoExternalPlaybackChange, RCTBubblingEventBlock); RCT_EXPORT_VIEW_PROPERTY(onVideoSaved, RCTBubblingEventBlock); RCT_REMAP_METHOD(save, options:(NSDictionary *)options reactTag:(nonnull NSNumber *)reactTag resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { [self.bridge.uiManager prependUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, RCTVideo *> *viewRegistry) { RCTVideo *view = viewRegistry[reactTag]; if (![view isKindOfClass:[RCTVideo class]]) { RCTLogError(@"Invalid view returned from registry, expecting RCTVideo, got: %@", view); } else { [view save:options resolve:resolve reject:reject]; } }]; } - (NSDictionary *)constantsToExport { Loading