Add readyForDisplay callback
This commit is contained in:
parent
b17e3add97
commit
eb3fc2373a
19
RCTVideo.m
19
RCTVideo.m
@ -7,6 +7,7 @@
|
|||||||
static NSString *const statusKeyPath = @"status";
|
static NSString *const statusKeyPath = @"status";
|
||||||
static NSString *const playbackLikelyToKeepUpKeyPath = @"playbackLikelyToKeepUp";
|
static NSString *const playbackLikelyToKeepUpKeyPath = @"playbackLikelyToKeepUp";
|
||||||
static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
|
static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
|
||||||
|
static NSString *const readyForDisplayKeyPath = @"readyForDisplay";
|
||||||
|
|
||||||
@implementation RCTVideo
|
@implementation RCTVideo
|
||||||
{
|
{
|
||||||
@ -213,8 +214,7 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
|
|||||||
[self addPlayerItemObservers];
|
[self addPlayerItemObservers];
|
||||||
|
|
||||||
[_player pause];
|
[_player pause];
|
||||||
[_playerLayer removeFromSuperlayer];
|
[self removePlayerLayer];
|
||||||
_playerLayer = nil;
|
|
||||||
[_playerViewController.view removeFromSuperview];
|
[_playerViewController.view removeFromSuperview];
|
||||||
_playerViewController = nil;
|
_playerViewController = nil;
|
||||||
|
|
||||||
@ -505,6 +505,8 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
|
|||||||
_playerLayer.frame = self.bounds;
|
_playerLayer.frame = self.bounds;
|
||||||
_playerLayer.needsDisplayOnBoundsChange = YES;
|
_playerLayer.needsDisplayOnBoundsChange = YES;
|
||||||
|
|
||||||
|
[_playerLayer addObserver:self forKeyPath:readyForDisplayKeyPath options:NSKeyValueObservingOptionNew context:nil];
|
||||||
|
|
||||||
[self.layer addSublayer:_playerLayer];
|
[self.layer addSublayer:_playerLayer];
|
||||||
self.layer.needsDisplayOnBoundsChange = YES;
|
self.layer.needsDisplayOnBoundsChange = YES;
|
||||||
}
|
}
|
||||||
@ -517,8 +519,7 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
|
|||||||
_controls = controls;
|
_controls = controls;
|
||||||
if( _controls )
|
if( _controls )
|
||||||
{
|
{
|
||||||
[_playerLayer removeFromSuperlayer];
|
[self removePlayerLayer];
|
||||||
_playerLayer = nil;
|
|
||||||
[self usePlayerViewController];
|
[self usePlayerViewController];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -530,6 +531,13 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)removePlayerLayer
|
||||||
|
{
|
||||||
|
[_playerLayer removeFromSuperlayer];
|
||||||
|
[_playerLayer removeObserver:self forKeyPath:readyForDisplayKeyPath];
|
||||||
|
_playerLayer = nil;
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark - RCTVideoPlayerViewControllerDelegate
|
#pragma mark - RCTVideoPlayerViewControllerDelegate
|
||||||
|
|
||||||
- (void)videoPlayerViewControllerWillDismiss:(AVPlayerViewController *)playerViewController
|
- (void)videoPlayerViewControllerWillDismiss:(AVPlayerViewController *)playerViewController
|
||||||
@ -615,8 +623,7 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
|
|||||||
[_player pause];
|
[_player pause];
|
||||||
_player = nil;
|
_player = nil;
|
||||||
|
|
||||||
[_playerLayer removeFromSuperlayer];
|
[self removePlayerLayer];
|
||||||
_playerLayer = nil;
|
|
||||||
|
|
||||||
[_playerViewController.view removeFromSuperview];
|
[_playerViewController.view removeFromSuperview];
|
||||||
_playerViewController = nil;
|
_playerViewController = nil;
|
||||||
|
@ -28,7 +28,8 @@ RCT_EXPORT_MODULE();
|
|||||||
@"onVideoFullscreenPlayerWillPresent",
|
@"onVideoFullscreenPlayerWillPresent",
|
||||||
@"onVideoFullscreenPlayerDidPresent",
|
@"onVideoFullscreenPlayerDidPresent",
|
||||||
@"onVideoFullscreenPlayerWillDismiss",
|
@"onVideoFullscreenPlayerWillDismiss",
|
||||||
@"onVideoFullscreenPlayerDidDismiss"
|
@"onVideoFullscreenPlayerDidDismiss",
|
||||||
|
@"onReadyForDisplay"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user