Skip to content

Commit 28bae40

Browse files
seansywildseansy
seansy
authored andcommitted
Fixes #963
Bug happens when uri is changed for a video. The fix: Remove player layer before addPlayerItemObservers so _playerItemObserversSet is still set to NO if observers have already been removed.
1 parent 737d348 commit 28bae40

File tree

1 file changed

+2
-5
lines changed

1 file changed

+2
-5
lines changed

ios/RCTVideo.m

+2-5
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ -(void)removePlayerTimeObserver
140140
- (void)dealloc
141141
{
142142
[[NSNotificationCenter defaultCenter] removeObserver:self];
143-
[self removePlayerItemObservers];
144143
[self removePlayerLayer];
144+
[self removePlayerItemObservers];
145145
[_player removeObserver:self forKeyPath:playbackRate context:nil];
146146
}
147147

@@ -252,9 +252,6 @@ - (void)addPlayerItemObservers
252252
* observer set */
253253
- (void)removePlayerItemObservers
254254
{
255-
if (_playerLayer) {
256-
[_playerLayer removeObserver:self forKeyPath:readyForDisplayKeyPath];
257-
}
258255
if (_playerItemObserversSet) {
259256
[_playerItem removeObserver:self forKeyPath:statusKeyPath];
260257
[_playerItem removeObserver:self forKeyPath:playbackBufferEmptyKeyPath];
@@ -268,13 +265,13 @@ - (void)removePlayerItemObservers
268265

269266
- (void)setSrc:(NSDictionary *)source
270267
{
268+
[self removePlayerLayer];
271269
[self removePlayerTimeObserver];
272270
[self removePlayerItemObservers];
273271
_playerItem = [self playerItemForSource:source];
274272
[self addPlayerItemObservers];
275273

276274
[_player pause];
277-
[self removePlayerLayer];
278275
[_playerViewController.view removeFromSuperview];
279276
_playerViewController = nil;
280277

0 commit comments

Comments
 (0)