Skip to content

Commit

Permalink
Merge pull request #2 from firesidecollectives/MPRemoteCommandCenter-…
Browse files Browse the repository at this point in the history
…dealloc-fix

MPRemoteCommandCenter dealloc fix
  • Loading branch information
jaydgoss authored Oct 11, 2021
2 parents 8a11b14 + 5b7b3da commit 61cb45d
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 18 deletions.
41 changes: 24 additions & 17 deletions ios/Video/RCTVideo.m
Original file line number Diff line number Diff line change
Expand Up @@ -214,9 +214,11 @@ -(void)removePlayerTimeObserver

- (void)dealloc
{
NSLog(@"RCTVideo dealloc");
[[NSNotificationCenter defaultCenter] removeObserver:self];
[self cleanupRemoteTransportControl];
[self removePlayerLayer];
[self cleanupNowPlaying];
[self removePlayerItemObservers];
[_player removeObserver:self forKeyPath:playbackRate context:nil];
[_player removeObserver:self forKeyPath:externalPlaybackActive context: nil];
Expand Down Expand Up @@ -414,7 +416,7 @@ - (void)setSrc:(NSDictionary *)source
}

-(MPRemoteCommandHandlerStatus)toggleFromRemote:(MPRemoteCommandEvent *)event {
NSLog(@"toggleFromRemote rate:%f", _player.rate);
NSLog(@"RCTVideo toggleFromRemote rate:%f", _player.rate);

if (_player.rate == 0.0) {
[self setPaused:false];
Expand All @@ -428,7 +430,7 @@ -(MPRemoteCommandHandlerStatus)toggleFromRemote:(MPRemoteCommandEvent *)event {
}

-(MPRemoteCommandHandlerStatus)playFromRemote:(MPRemoteCommandEvent *)event {
NSLog(@"playFromRemote rate:%f", _player.rate);
NSLog(@"RCTVideo playFromRemote rate:%f", _player.rate);

if (_player.rate == 0.0) {
[self setPaused:false];
Expand All @@ -439,7 +441,7 @@ -(MPRemoteCommandHandlerStatus)playFromRemote:(MPRemoteCommandEvent *)event {
}

-(MPRemoteCommandHandlerStatus)pauseFromRemote:(MPRemoteCommandEvent *)event {
NSLog(@"pauseFromRemote rate:%f", _player.rate);
NSLog(@"RCTVideo pauseFromRemote rate:%f", _player.rate);

if (_player.rate == 1.0) {
[self setPaused:true];
Expand All @@ -450,7 +452,7 @@ -(MPRemoteCommandHandlerStatus)pauseFromRemote:(MPRemoteCommandEvent *)event {
}

-(MPRemoteCommandHandlerStatus)stopFromRemote:(MPRemoteCommandEvent *)event {
NSLog(@"stopFromRemote rate:%f", _player.rate);
NSLog(@"RCTVideo stopFromRemote rate:%f", _player.rate);

if (_player.rate == 1.0) {
[self setPaused:true];
Expand All @@ -461,7 +463,7 @@ -(MPRemoteCommandHandlerStatus)stopFromRemote:(MPRemoteCommandEvent *)event {
}

-(void)setupRemoteTransportControl {
NSLog(@"setupRemoteTransportControl");
NSLog(@"RCTVideo setupRemoteTransportControl");
MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];
[[commandCenter playCommand] addTarget:self action:@selector(playFromRemote:)];
[[commandCenter pauseCommand] addTarget:self action:@selector(pauseFromRemote:)];
Expand All @@ -470,18 +472,23 @@ -(void)setupRemoteTransportControl {
}

-(void)cleanupRemoteTransportControl {
NSLog(@"cleanupRemoteTransportControl");
NSLog(@"RCTVideo cleanupRemoteTransportControl");
MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];

[[commandCenter playCommand] removeTarget:self action:@selector(playFromRemote:)];
[[commandCenter pauseCommand] removeTarget:self action:@selector(pauseFromRemote:)];
[[commandCenter togglePlayPauseCommand] removeTarget:self action:@selector(playFromRemote:)];
[[commandCenter stopCommand] removeTarget:self action:@selector(stopFromRemote:)];
[[commandCenter playCommand] removeTarget:nil];
[[commandCenter pauseCommand] removeTarget:nil];
[[commandCenter togglePlayPauseCommand] removeTarget:nil];
[[commandCenter stopCommand] removeTarget:nil];
}

-(void)cleanupNowPlaying {
NSLog(@"RCTVideo cleanupNowPlaying");
MPNowPlayingInfoCenter *playingInfoCenter = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init];
[playingInfoCenter setNowPlayingInfo:songInfo];
}

- (void)setupNowPlaying {
NSLog(@"setupNowPlaying");
NSLog(@"RCTVideo setupNowPlaying");
MPNowPlayingInfoCenter *playingInfoCenter = [MPNowPlayingInfoCenter defaultCenter];

NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init];
Expand Down Expand Up @@ -825,11 +832,11 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(N

if (!CGRectEqualToRect(oldRect, newRect)) {
if (CGRectEqualToRect(newRect, [UIScreen mainScreen].bounds)) {
NSLog(@"in fullscreen");
NSLog(@"RCTVideo in fullscreen");

[self.reactViewController.view setFrame:[UIScreen mainScreen].bounds];
[self.reactViewController.view setNeedsLayout];
} else NSLog(@"not fullscreen");
} else NSLog(@"RCTVideo not fullscreen");
}

return;
Expand Down Expand Up @@ -1816,7 +1823,7 @@ - (BOOL)resourceLoader:(AVAssetResourceLoader *)resourceLoader shouldWaitForLoad

- (void)resourceLoader:(AVAssetResourceLoader *)resourceLoader
didCancelLoadingRequest:(AVAssetResourceLoadingRequest *)loadingRequest {
NSLog(@"didCancelLoadingRequest");
NSLog(@"RCTVideo didCancelLoadingRequest");
}

- (BOOL)loadingRequestHandling:(AVAssetResourceLoadingRequest *)loadingRequest {
Expand Down Expand Up @@ -1884,12 +1891,12 @@ - (BOOL)loadingRequestHandling:(AVAssetResourceLoadingRequest *)loadingRequest {
NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
if (error != nil) {
NSLog(@"Error getting license from %@, HTTP status code %li", url, (long)[httpResponse statusCode]);
NSLog(@"RCTVideo Error getting license from %@, HTTP status code %li", url, (long)[httpResponse statusCode]);
[self finishLoadingWithError:error];
self->_requestingCertificateErrored = YES;
} else {
if([httpResponse statusCode] != 200){
NSLog(@"Error getting license from %@, HTTP status code %li", url, (long)[httpResponse statusCode]);
NSLog(@"RCTVideo Error getting license from %@, HTTP status code %li", url, (long)[httpResponse statusCode]);
NSError *licenseError = [NSError errorWithDomain: @"RCTVideo"
code: RCTVideoErrorLicenseRequestNotOk
userInfo: @{
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-video",
"version": "5.1.0-alpha8-fs2",
"version": "5.1.0-alpha8-fs3",
"description": "A <Video /> element for react-native",
"main": "Video.js",
"license": "MIT",
Expand Down

0 comments on commit 61cb45d

Please sign in to comment.