/// <summary> /// Initializes a new instance of the <see cref="T:Camera.iOS.Renderers.CameraView.CameraIOS"/> class. /// </summary> public CameraIOS() { _log = IoC.Resolve <ILogger>(); _tag = $"{GetType()} "; // retrieve system version var versionParts = UIDevice.CurrentDevice.SystemVersion.Split('.'); var versionString = versionParts [0] + "." + versionParts [1]; _systemVersion = Convert.ToDouble(versionString, CultureInfo.InvariantCulture); _mainView = new UIView() { TranslatesAutoresizingMaskIntoConstraints = false }; AutoresizingMask = UIViewAutoresizing.FlexibleMargins; _session = new LFLiveSession(LFLiveAudioConfiguration.DefaultConfigurationForQuality(LFLiveAudioQuality.High), LFLiveVideoConfiguration.DefaultConfigurationForQuality((LFLiveVideoQuality.Low3))); // retrieve camera device if available _cameraAvailable = true; Add(_mainView); // set layout constraints for main view AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|[mainView]|", NSLayoutFormatOptions.DirectionLeftToRight, null, new NSDictionary("mainView", _mainView))); AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|[mainView]|", NSLayoutFormatOptions.AlignAllTop, null, new NSDictionary("mainView", _mainView))); }
/// <summary> /// Takes the video. /// </summary> /// <returns>The photo.</returns> public void TakeVideo() { try { if (!_cameraBusy) { SetBusy(true); var stream = new LFLiveStreamInfo(); stream.Url = rtmpUrl; var audioConfiguration = new LFLiveAudioConfiguration { AudioBitrate = LFLiveAudioBitRate.LFLiveAudioBitRate_96Kbps, AudioSampleRate = LFLiveAudioSampleRate.LFLiveAudioSampleRate_44100Hz }; var videoConfiguration = new LFLiveVideoConfiguration { VideoFrameRate = 30, VideoMaxFrameRate = 30, VideoMinFrameRate = 30, VideoBitRate = 4200, VideoMaxBitRate = 4200, VideoMinBitRate = 4200, VideoMaxKeyframeInterval = 60, SessionPreset = LFLiveVideoSessionPreset.LFCaptureSessionPreset720x1280, VideoSize = new CGSize(720, 1280) }; stream.AudioConfiguration = audioConfiguration; stream.VideoConfiguration = videoConfiguration; _session.AdaptiveBitrate = false; _session.ReconnectCount = 10; ToggleLiveStream(true, stream); var info = _session.StreamInfo; } else { ToggleLiveStream(false); } } catch (Exception error) { _log.WriteLineTime(_tag + "\n" + "CaptureImageWithMetadata() Failed to take photo \n " + "ErrorMessage: \n" + error.Message + "\n" + "Stacktrace: \n " + error.StackTrace); } }