This sample applies an end-to-end approach to demonstrate how to write a camera application using the Windows.Media.Capture API in conjunction with orientation sensors to cover the functions that most camera apps will require. In addition, it will show a simple way to use the Face Detection effect included in Windows. This sample is based on the CameraStarterKit.
Specifically, this sample will cover how to:
- Manage the MediaCapture object throughout the lifecycle of the app and through navigation events.
- Acquire a camera located on a specific side of the device. In this case, the sample attempts to get the front camera.
- Start and stop the preview to a UI element, including mirroring for front-facing cameras.
- Take a regular picture to a file, taking into account the orientation of the device.
- Handle rotation events for both, the device moving in space and the page orientation changing on the screen. Also apply any necessary corrections to the preview stream rotation.
- Handle MediaCapture Failed event to clean up the MediaCapture instance when an error occurs.
- Manage the Face Detection effect, including creation, configuration, activation/deactivation, registering for events, and cleanup.
- Render face bounding boxes as an overlay on the camera preview, taking mirroring and rotation into account.
This sample also implements a custom UI to better simulate the experience that a camera application would provide, so any messages intended for the developer are printed to the debug console.
Samples
How to preview video from a webcam
Media capture using capture device
Reference
Windows.Media.Capture.MediaCapture namespace
Windows.Media.Capture.MediaCaptureInitializationSettings constructor
Windows.Media.Capture.MediaCaptureInitilizationSettings.VideoDeviceId property
Windows.Devices.Enumeration namespace
Windows.Devices.Enumeration.DeviceInformation class
Windows.Devices.Sensors.SimpleOrientationSensor class
Windows.Graphics.Display.DisplayInformation class
Windows.Phone.UI.Input.HardwareButtons.CameraPressed event
Windows.Graphics.Imaging.BitmapDecoder class
Windows.Graphics.Imaging.BitmapEncoder class
Hardware: Camera
Client: Windows 10
Server: Windows Server 2016 Technical Preview
Phone: Windows 10
- If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
- Start Microsoft Visual Studio 2015 and select File > Open > Project/Solution.
- Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
- Press Ctrl+Shift+B, or select Build > Build Solution.
The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
Deploying the sample:
- Select Build > Deploy Solution.
Deploying and running the sample:
- To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or select Debug > Start Without Debugging.