public void ChangeCamera(AVCaptureSession session, SessionPresetConfiguration presetConfiguration) { _videoDeviceInputManager.ConfigureVideoDeviceInput(session); _photoOutput.IsLivePhotoCaptureEnabled = _photoOutput.IsLivePhotoCaptureSupported && presetConfiguration == SessionPresetConfiguration.LivePhotos; }
public SessionSetupResult ConfigureSession(AVCaptureSession session, SessionPresetConfiguration presetConfiguration) { _presetConfiguration = presetConfiguration; session.SessionPreset = AVCaptureSession.PresetPhoto; var inputDeviceConfigureResult = _videoDeviceInputManager.ConfigureVideoDeviceInput(session); if (inputDeviceConfigureResult != SessionSetupResult.Success) { return(inputDeviceConfigureResult); } if (!session.CanAddOutput(_photoOutput)) { Console.WriteLine("capture session: could not add photo output to the session"); return(SessionSetupResult.ConfigurationFailed); } session.AddOutput(_photoOutput); _photoOutput.IsHighResolutionCaptureEnabled = true; ConfigureLivePhoto(session); _videoDataOutput = new AVCaptureVideoDataOutput(); if (session.CanAddOutput(_videoDataOutput)) { _videoDataOutput.AlwaysDiscardsLateVideoFrames = true; session.AddOutput(_videoDataOutput); } else { Console.WriteLine("capture session: warning - could not add video data output to the session"); } return(SessionSetupResult.Success); }