/// <summary> /// Click handler for camera button. Spawns device picker UI /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void UICameraButton_Click(object sender, RoutedEventArgs e) { // Disable the top menu while handling the click await UpdateMediaSourceButtonsAsync(false); var devicePicker = new DevicePicker(); devicePicker.Filter.SupportedDeviceClasses.Add(DeviceClass.VideoCapture); // Calculate the position to show the picker (right below the buttons) GeneralTransform ge = UICameraButton.TransformToVisual(null); Windows.Foundation.Point point = ge.TransformPoint(new Windows.Foundation.Point()); Windows.Foundation.Rect rect = new Windows.Foundation.Rect(point, new Windows.Foundation.Point(point.X + UICameraButton.ActualWidth, point.Y + UICameraButton.ActualHeight)); DeviceInformation di = await devicePicker.PickSingleDeviceAsync(rect); if (di != null) { try { NotifyUser("Attaching to camera " + di.Name); await ConfigureFrameSourceAsync(di, m_inputImageFeatureDescriptor); } catch (Exception ex) { NotifyUser("Error occurred while initializating MediaCapture:\n" + ex.Message); } } // Re-enable the top menu once done handling the click await UpdateMediaSourceButtonsAsync(true); }
/// <summary> /// Click handler for camera button. Spawns device picker UI /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void CameraButton_Click(object sender, RoutedEventArgs e) { // Disable the top menu while handling the click await UpdateMediaSourceButtonsAsync(false); var devicePicker = new DevicePicker(); devicePicker.Filter.SupportedDeviceClasses.Add(DeviceClass.VideoCapture); // Calculate the position to show the picker (right below the buttons) GeneralTransform ge = UICameraButton.TransformToVisual(null); Windows.Foundation.Point point = ge.TransformPoint(new Windows.Foundation.Point()); Windows.Foundation.Rect rect = new Windows.Foundation.Rect(point, new Windows.Foundation.Point(point.X + UICameraButton.ActualWidth, point.Y + UICameraButton.ActualHeight)); DeviceInformation di = await devicePicker.PickSingleDeviceAsync(rect); if (di != null) { try { NotifyUser("Attaching to camera " + di.Name); // Create new MediaCapture connected to our device var mediaCapture = new MediaCapture(); var settings = new MediaCaptureInitializationSettings { MemoryPreference = MediaCaptureMemoryPreference.Auto, StreamingCaptureMode = StreamingCaptureMode.Video, VideoDeviceId = di.Id, }; await mediaCapture.InitializeAsync(settings); await ConfigureFrameSourceAsync(mediaCapture); } catch (Exception ex) { NotifyUser("Error occurred while initializating MediaCapture:\n" + ex.Message); } } // Re-enable the top menu once done handling the click await UpdateMediaSourceButtonsAsync(true); }