Restart capture session if needed on active.
We've seen some cases of nonrecoverable runtime error when entering the foreground. This is a theoretical fix to see if we can restart after willEnterForeground in didBecomeActive instead. NOTRY=True BUG= Review-Url: https://codereview.webrtc.org/2258583004 Cr-Commit-Position: refs/heads/master@{#13903}
This commit is contained in:
@ -137,6 +137,10 @@ static NSString *GetSessionPresetForVideoFormat(
|
|||||||
selector:@selector(handleCaptureSessionInterruptionEnded:)
|
selector:@selector(handleCaptureSessionInterruptionEnded:)
|
||||||
name:AVCaptureSessionInterruptionEndedNotification
|
name:AVCaptureSessionInterruptionEndedNotification
|
||||||
object:_captureSession];
|
object:_captureSession];
|
||||||
|
[center addObserver:self
|
||||||
|
selector:@selector(handleApplicationDidBecomeActive:)
|
||||||
|
name:UIApplicationDidBecomeActiveNotification
|
||||||
|
object:[UIApplication sharedApplication]];
|
||||||
#endif
|
#endif
|
||||||
[center addObserver:self
|
[center addObserver:self
|
||||||
selector:@selector(handleCaptureSessionRuntimeError:)
|
selector:@selector(handleCaptureSessionRuntimeError:)
|
||||||
@ -378,6 +382,22 @@ static NSString *GetSessionPresetForVideoFormat(
|
|||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if TARGET_OS_IPHONE
|
||||||
|
|
||||||
|
#pragma mark - UIApplication notifications
|
||||||
|
|
||||||
|
- (void)handleApplicationDidBecomeActive:(NSNotification *)notification {
|
||||||
|
[RTCDispatcher dispatchAsyncOnType:RTCDispatcherTypeCaptureSession
|
||||||
|
block:^{
|
||||||
|
if (self.hasStarted && !self.captureSession.isRunning) {
|
||||||
|
RTCLog(@"Restarting capture session on active.");
|
||||||
|
[self.captureSession startRunning];
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // TARGET_OS_IPHONE
|
||||||
|
|
||||||
#pragma mark - Private
|
#pragma mark - Private
|
||||||
|
|
||||||
- (BOOL)setupCaptureSession {
|
- (BOOL)setupCaptureSession {
|
||||||
|
|||||||
Reference in New Issue
Block a user