/// <summary> /// Initializes the scenario /// </summary> /// <returns></returns> private async Task InitializeAsync(CancellationToken cancel = default(CancellationToken)) { var streamFilteringCriteria = new { //AspectRatio = 1.333333333333333, HorizontalResolution = (uint)480, SubType = "YUY2" }; currentState = State.Initializing; device = new CaptureDevice(); CameraPreview.Visibility = Visibility.Collapsed; PreviewPoster.Visibility = Visibility.Visible; Preview.Content = "Start Preview"; LoopbackClient.IsEnabled = false; mode = defaultMode; LatencyModeToggle.IsOn = (mode == LatencyMode.LowLatency); LatencyModeToggle.IsEnabled = false; await device.InitializeAsync(); var setting = await device.SelectPreferredCameraStreamSettingAsync(MediaStreamType.VideoPreview, ((x) => { var previewStreamEncodingProperty = x as Windows.Media.MediaProperties.VideoEncodingProperties; return(previewStreamEncodingProperty.Width >= streamFilteringCriteria.HorizontalResolution && previewStreamEncodingProperty.Subtype == streamFilteringCriteria.SubType); })); previewEncodingProperties = setting as VideoEncodingProperties; PreviewSetupCompleted(); }
private async Task startVideoRecord(CancellationToken cancel = default(CancellationToken)) { NotifyUser("Initializing...", NotifyType.StatusMessage); var recordFormat = _validVideoRecordProperties[SupportedFormat.SelectedIndex]; try { var rSetting = await device.SelectPreferredCameraStreamSettingAsync(MediaStreamType.VideoRecord, ((x) => { var p = x as VideoEncodingProperties; return(p.Width == recordFormat.Width && p.Height == recordFormat.Height && p.Subtype == recordFormat.Subtype); })); recordEncodingProperties = rSetting as VideoEncodingProperties; var pSetting = await device.SelectPreferredCameraStreamSettingAsync(MediaStreamType.VideoPreview, ((x) => { var p = x as VideoEncodingProperties; return(p.Width == recordFormat.Width && p.Height == recordFormat.Height); })); if (pSetting == null) { pSetting = await device.SelectPreferredCameraStreamSettingAsync(MediaStreamType.VideoPreview, ((x) => { var p = x as VideoEncodingProperties; return(p.Width <= recordFormat.Width); })); } previewEncodingProperties = pSetting as VideoEncodingProperties; await StartRecordToCustomSink(); NotifyUser("", NotifyType.StatusMessage); } catch (Exception) { NotifyUser("Initialization error. Restart the sample to try again.", NotifyType.ErrorMessage); } }
/// <summarycancel /// Initializes the scenario /// </summary> /// <returns></returns> private async Task InitializeAsync() { var streamFilteringCriteria = new { HorizontalResolution = (uint)480, SubType = "YUY2" }; currentState = State.Initializing; device = new CaptureDevice(); PreviewVideo.Visibility = Visibility.Collapsed; WebcamPreviewPoster.Visibility = Visibility.Visible; PreviewButton.Content = "Start Preview"; LoopbackClientButton.IsEnabled = false; mode = defaultMode; LatencyModeToggle.IsOn = (mode == LatencyMode.LowLatency); LatencyModeToggle.IsEnabled = false; await device.InitializeAsync(); var setting = await device.SelectPreferredCameraStreamSettingAsync(MediaStreamType.VideoPreview, ((x) => { var previewStreamEncodingProperty = x as Windows.Media.MediaProperties.VideoEncodingProperties; return (previewStreamEncodingProperty.Width >= streamFilteringCriteria.HorizontalResolution && previewStreamEncodingProperty.Subtype == streamFilteringCriteria.SubType); })); previewEncodingProperties = setting as VideoEncodingProperties; PreviewSetupCompleted(); }