Fix dismissal code not running by creating subclass of view controller and notifying view
This commit is contained in:
parent
4bbce5e378
commit
d073847ce0
@ -2,6 +2,7 @@
|
|||||||
#import <AVFoundation/AVFoundation.h>
|
#import <AVFoundation/AVFoundation.h>
|
||||||
#import "AVKit/AVKit.h"
|
#import "AVKit/AVKit.h"
|
||||||
#import "UIView+FindUIViewController.h"
|
#import "UIView+FindUIViewController.h"
|
||||||
|
#import "RCTVideoPlayerViewController.h"
|
||||||
|
|
||||||
@class RCTEventDispatcher;
|
@class RCTEventDispatcher;
|
||||||
|
|
||||||
@ -10,5 +11,6 @@
|
|||||||
- (instancetype)initWithEventDispatcher:(RCTEventDispatcher *)eventDispatcher NS_DESIGNATED_INITIALIZER;
|
- (instancetype)initWithEventDispatcher:(RCTEventDispatcher *)eventDispatcher NS_DESIGNATED_INITIALIZER;
|
||||||
|
|
||||||
- (AVPlayerViewController*)createPlayerViewController:(AVPlayer*)player withPlayerItem:(AVPlayerItem*)playerItem;
|
- (AVPlayerViewController*)createPlayerViewController:(AVPlayer*)player withPlayerItem:(AVPlayerItem*)playerItem;
|
||||||
|
- (void)setFullscreen:(BOOL)fullscreen;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -71,7 +71,8 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (AVPlayerViewController*)createPlayerViewController:(AVPlayer*)player withPlayerItem:(AVPlayerItem*)playerItem {
|
- (AVPlayerViewController*)createPlayerViewController:(AVPlayer*)player withPlayerItem:(AVPlayerItem*)playerItem {
|
||||||
AVPlayerViewController* playerLayer= [[AVPlayerViewController alloc] init];
|
RCTVideoPlayerViewController* playerLayer= [[RCTVideoPlayerViewController alloc] init];
|
||||||
|
playerLayer.rctDelegate = self;
|
||||||
playerLayer.view.frame = self.bounds;
|
playerLayer.view.frame = self.bounds;
|
||||||
playerLayer.player = _player;
|
playerLayer.player = _player;
|
||||||
playerLayer.view.frame = self.bounds;
|
playerLayer.view.frame = self.bounds;
|
||||||
@ -472,6 +473,7 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
|
|||||||
[_presentingViewController dismissViewControllerAnimated:true completion:^{
|
[_presentingViewController dismissViewControllerAnimated:true completion:^{
|
||||||
_fullScreenPlayerPresented = fullscreen;
|
_fullScreenPlayerPresented = fullscreen;
|
||||||
_presentingViewController = nil;
|
_presentingViewController = nil;
|
||||||
|
[self setControls:_controls];
|
||||||
[_eventDispatcher sendInputEventWithName:@"onVideoFullscreenPlayerDidDismiss" body:@{@"target": self.reactTag}];
|
[_eventDispatcher sendInputEventWithName:@"onVideoFullscreenPlayerDidDismiss" body:@{@"target": self.reactTag}];
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
31CAFB211CADA8CD009BCF6F /* UIView+FindUIViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 31CAFB201CADA8CD009BCF6F /* UIView+FindUIViewController.m */; };
|
31CAFB211CADA8CD009BCF6F /* UIView+FindUIViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 31CAFB201CADA8CD009BCF6F /* UIView+FindUIViewController.m */; };
|
||||||
|
31CAFB2F1CADC77F009BCF6F /* RCTVideoPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 31CAFB2E1CADC77F009BCF6F /* RCTVideoPlayerViewController.m */; };
|
||||||
BBD49E3F1AC8DEF000610F8E /* RCTVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = BBD49E3A1AC8DEF000610F8E /* RCTVideo.m */; };
|
BBD49E3F1AC8DEF000610F8E /* RCTVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = BBD49E3A1AC8DEF000610F8E /* RCTVideo.m */; };
|
||||||
BBD49E401AC8DEF000610F8E /* RCTVideoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BBD49E3C1AC8DEF000610F8E /* RCTVideoManager.m */; };
|
BBD49E401AC8DEF000610F8E /* RCTVideoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BBD49E3C1AC8DEF000610F8E /* RCTVideoManager.m */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
@ -28,6 +29,8 @@
|
|||||||
134814201AA4EA6300B7C361 /* libRCTVideo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTVideo.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
134814201AA4EA6300B7C361 /* libRCTVideo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTVideo.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
31CAFB1F1CADA8CD009BCF6F /* UIView+FindUIViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+FindUIViewController.h"; sourceTree = "<group>"; };
|
31CAFB1F1CADA8CD009BCF6F /* UIView+FindUIViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+FindUIViewController.h"; sourceTree = "<group>"; };
|
||||||
31CAFB201CADA8CD009BCF6F /* UIView+FindUIViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+FindUIViewController.m"; sourceTree = "<group>"; };
|
31CAFB201CADA8CD009BCF6F /* UIView+FindUIViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+FindUIViewController.m"; sourceTree = "<group>"; };
|
||||||
|
31CAFB2D1CADC77F009BCF6F /* RCTVideoPlayerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTVideoPlayerViewController.h; sourceTree = "<group>"; };
|
||||||
|
31CAFB2E1CADC77F009BCF6F /* RCTVideoPlayerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTVideoPlayerViewController.m; sourceTree = "<group>"; };
|
||||||
BBD49E391AC8DEF000610F8E /* RCTVideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTVideo.h; sourceTree = "<group>"; };
|
BBD49E391AC8DEF000610F8E /* RCTVideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTVideo.h; sourceTree = "<group>"; };
|
||||||
BBD49E3A1AC8DEF000610F8E /* RCTVideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTVideo.m; sourceTree = "<group>"; };
|
BBD49E3A1AC8DEF000610F8E /* RCTVideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTVideo.m; sourceTree = "<group>"; };
|
||||||
BBD49E3B1AC8DEF000610F8E /* RCTVideoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTVideoManager.h; sourceTree = "<group>"; };
|
BBD49E3B1AC8DEF000610F8E /* RCTVideoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTVideoManager.h; sourceTree = "<group>"; };
|
||||||
@ -60,6 +63,8 @@
|
|||||||
31CAFB201CADA8CD009BCF6F /* UIView+FindUIViewController.m */,
|
31CAFB201CADA8CD009BCF6F /* UIView+FindUIViewController.m */,
|
||||||
BBD49E391AC8DEF000610F8E /* RCTVideo.h */,
|
BBD49E391AC8DEF000610F8E /* RCTVideo.h */,
|
||||||
BBD49E3A1AC8DEF000610F8E /* RCTVideo.m */,
|
BBD49E3A1AC8DEF000610F8E /* RCTVideo.m */,
|
||||||
|
31CAFB2D1CADC77F009BCF6F /* RCTVideoPlayerViewController.h */,
|
||||||
|
31CAFB2E1CADC77F009BCF6F /* RCTVideoPlayerViewController.m */,
|
||||||
BBD49E3B1AC8DEF000610F8E /* RCTVideoManager.h */,
|
BBD49E3B1AC8DEF000610F8E /* RCTVideoManager.h */,
|
||||||
BBD49E3C1AC8DEF000610F8E /* RCTVideoManager.m */,
|
BBD49E3C1AC8DEF000610F8E /* RCTVideoManager.m */,
|
||||||
134814211AA4EA7D00B7C361 /* Products */,
|
134814211AA4EA7D00B7C361 /* Products */,
|
||||||
@ -123,6 +128,7 @@
|
|||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
31CAFB211CADA8CD009BCF6F /* UIView+FindUIViewController.m in Sources */,
|
31CAFB211CADA8CD009BCF6F /* UIView+FindUIViewController.m in Sources */,
|
||||||
|
31CAFB2F1CADC77F009BCF6F /* RCTVideoPlayerViewController.m in Sources */,
|
||||||
BBD49E3F1AC8DEF000610F8E /* RCTVideo.m in Sources */,
|
BBD49E3F1AC8DEF000610F8E /* RCTVideo.m in Sources */,
|
||||||
BBD49E401AC8DEF000610F8E /* RCTVideoManager.m in Sources */,
|
BBD49E401AC8DEF000610F8E /* RCTVideoManager.m in Sources */,
|
||||||
);
|
);
|
||||||
|
14
RCTVideoPlayerViewController.h
Normal file
14
RCTVideoPlayerViewController.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
//
|
||||||
|
// RCTVideoPlayerViewController.h
|
||||||
|
// RCTVideo
|
||||||
|
//
|
||||||
|
// Created by Stanisław Chmiela on 31.03.2016.
|
||||||
|
// Copyright © 2016 Facebook. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <AVKit/AVKit.h>
|
||||||
|
#import "RCTVideo.h"
|
||||||
|
|
||||||
|
@interface RCTVideoPlayerViewController : AVPlayerViewController
|
||||||
|
@property (nonatomic, weak) id<RCTVideo> rctVideoView;
|
||||||
|
@end
|
22
RCTVideoPlayerViewController.m
Normal file
22
RCTVideoPlayerViewController.m
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
//
|
||||||
|
// RCTVideoPlayerViewController.m
|
||||||
|
// RCTVideo
|
||||||
|
//
|
||||||
|
// Created by Stanisław Chmiela on 31.03.2016.
|
||||||
|
// Copyright © 2016 Facebook. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "RCTVideoPlayerViewController.h"
|
||||||
|
|
||||||
|
@interface RCTVideoPlayerViewController ()
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation RCTVideoPlayerViewController
|
||||||
|
|
||||||
|
- (IBAction)close:(id)sender
|
||||||
|
{
|
||||||
|
[self.rctVideoView setFullscreen:false];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
Loading…
Reference in New Issue
Block a user