iOS documentation говорит, что вы можете добавлять и удалять входы во время сеанса, например, для переключения между передней и задней камерами.Почему коммутационные камеры останавливают мой AVCaptureSession для MovieFileOutput?
Однако, когда я пытаюсь это сделать, моя сессия останавливается. Я запирая сеанс с beginConfiguration
и commitConfiguration
вызовов следующим образом:
- (void)switchCamera:(UIButton *)sender {
dispatch_async([self sessionQueue], ^{
AVCaptureSession *session = self.captureSession;
[session beginConfiguration];
AVCaptureInput *currentInput = self.currentCameraIsBack ? self.videoDeviceInputBack : self.videoDeviceInputFront;
AVCaptureInput *newInput = self.currentCameraIsBack ? self.videoDeviceInputFront : self.videoDeviceInputBack;
[session removeInput:currentInput];
[session addInput:newInput];
self.currentCameraIsBack = !self.currentCameraIsBack;
[session setSessionPreset:AVCaptureSessionPresetMedium];
[self setCameraOutputProperties];
[session commitConfiguration];
});
}
Я вывода на AVCaptureMovieFileOutput
. Нужно ли мне что-то делать, чтобы настроить этот сеанс так, чтобы он был включен?
(Обратите внимание, что ОП в this question пытается добавить новый вход, не удаляя старую, которая не является проблемой здесь)