public RecordingOptions(GraphicsCaptureItem target, SizeUInt32 resolution, uint bitrate, uint frameRate) { Target = target; Resolution = resolution; Bitrate = bitrate; FrameRate = frameRate; }
private void StartRecordingButton_Click(object sender, RoutedEventArgs e) { if (_preview == null) { throw new InvalidOperationException("There is no current preview!"); } // Get our encoder properties var frameRateItem = (FrameRateItem)FrameRateComboBox.SelectedItem; var resolutionItem = (ResolutionItem)ResolutionComboBox.SelectedItem; var bitrateItem = (BitrateItem)BitrateComboBox.SelectedItem; var useSourceSize = resolutionItem.IsZero(); var width = resolutionItem.Resolution.Width; var height = resolutionItem.Resolution.Height; var bitrate = bitrateItem.Bitrate; var frameRate = frameRateItem.FrameRate; // Use the capture item's size for the encoding if desired if (useSourceSize) { var targetSize = _preview.Target.Size; width = (uint)targetSize.Width; height = (uint)targetSize.Height; } var resolution = new SizeUInt32() { Width = width, Height = height }; var recordingOptions = new RecordingOptions(_preview.Target, resolution, bitrate, frameRate); _preview.Dispose(); _preview = null; StartRecordingButton.IsEnabled = false; Frame.Navigate(typeof(RecordingPage), recordingOptions); }