/// <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(); }
protected async override void OnNavigatingFrom(NavigatingCancelEventArgs e) { base.OnNavigatingFrom(e); if (activated) { RemoteVideo.Stop(); RemoteVideo.Source = null; } await device.CleanUpAsync(); device = null; }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. The Parameter /// property is typically used to configure the page.</param> protected async override void OnNavigatedTo(NavigationEventArgs e) { var cameraFound = await CaptureDevice.CheckForRecordingDeviceAsync(); if (cameraFound) { device = new CaptureDevice(); await InitializeAsync(); device.IncomingConnectionArrived += Device_IncomingConnectionArrived; device.CaptureFailed += Device_CaptureFailed; RemoteVideo.MediaFailed += RemoteVideo_MediaFailed; } else { rootPage.NotifyUser("A machine with a camera and a microphone is required to run this sample.", NotifyType.ErrorMessage); } }
private async Task readCameraProperties() { var cameraFound = await CaptureDevice.CheckForRecordingDeviceAsync(); if (cameraFound) { device = new CaptureDevice(); await device.InitializeAsync(); loadAllVideoProperties(); await device.CleanUpAsync(); device = null; } else { NotifyUser("A machine with a camera and a microphone is required to run this sample.", NotifyType.ErrorMessage); } }
private async Task <bool> createRecordingObject() { var cameraFound = await CaptureDevice.CheckForRecordingDeviceAsync(); if (cameraFound) { device = new CaptureDevice(); await device.InitializeAsync(); device.IncomingConnectionArrived += device_IncomingConnectionArrived; device.CaptureFailed += device_CaptureFailed; return(true); } else { NotifyUser("A machine with a camera and a microphone is required to run this sample.", NotifyType.ErrorMessage); return(false); } }
private async Task EndRecording() { if (device == null) { return; } await device.CaptureSource.StopPreviewAsync(); await device.CleanUpAsync(); device = null; await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, (() => { previewElement.Source = null; })); _isRecording = false; }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. The Parameter /// property is typically used to configure the page.</param> protected async override void OnNavigatedTo(NavigationEventArgs e) { var cameraEnumTask = CaptureDevice.CheckForRecordingDeviceAsync(); var cameraFound = await cameraEnumTask; if (cameraFound) { try { await InitializeAsync(); Window.Current.VisibilityChanged += Window_VisibilityChanged; } catch (Exception err) { rootPage.NotifyUser("Camera initialization error: " + err.Message + "\n Try restarting the sample.", NotifyType.ErrorMessage); } } else { rootPage.NotifyUser("A machine with a camera and a microphone is required to run this sample.", 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(); }