/// <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();
        }
Exemple #2
0
        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();
        }