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
- Start Visual Studio 2015 and select File > Open > Project/Solution.
- Go to the directory to which you unzipped the sample. Then go to the subdirectory containing the sample in the language you desire - either 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.