电话结束时回拨? (恢复AVCaptureSession)

时间:2016-08-09 23:50:49

标签: ios ios9 avfoundation avcapturesession avcapturedevice

我有一个摄像机应用程序,我希望它允许用户在手机上捕获内容。

我可以通过在收到电话和会话中断时断开音频捕获来做到这一点,但由于会话不再中断,我现在无法知道电话何时结束,并且可以重新连接音频设备。

如果我对AVCaptureSessionWasInterruptedNotificationAVCaptureSessionInterruptionEndedNotification使用此回调:

- (void)sessionWasInterrupted:(NSNotification *)notification {
    NSLog(@"session was interrupted");

    // disconnect the audio device when a call is started

    AVCaptureDevice *device = [[self audioInput] device];
    if ([device hasMediaType:AVMediaTypeAudio]) {
      [[self session] removeInput:[self audioInput]];
      [self setAudioInput:nil];
    }
}

- (void)sessionInterruptionEnded:(NSNotification *)notification {
    NSLog(@"session interuption ended");

    // reconnect the audio device when the call ends
    // PROBLEM: disconnecting the audio device triggers this callback before the phone call ends...

    AVCaptureDevice *device = [[self audioInput] device];
    if ([device hasMediaType:AVMediaTypeAudio]) {
        if ([[self session] canAddInput:[self audioInput]])
            [[self session] addInput:[self audioInput]];
    }
}

在电话呼叫的整个过程中,我得到一个接一个地调用它们的无限循环,并且相机被冻结。如果我没有在第二个功能中重新连接设备,则相机会继续工作,但在电话结束时不会再次呼叫sessionInterruptionEnded

电话结束时是否有回电信息?

0 个答案:

没有答案