Ejemplo n.º 1
0
        public void ChangeCamera(AVCaptureSession session, SessionPresetConfiguration presetConfiguration)
        {
            _videoDeviceInputManager.ConfigureVideoDeviceInput(session);

            _photoOutput.IsLivePhotoCaptureEnabled = _photoOutput.IsLivePhotoCaptureSupported &&
                                                     presetConfiguration == SessionPresetConfiguration.LivePhotos;
        }
Ejemplo n.º 2
0
        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);
        }