How to get camera feeds in Windows 8 Metro style a

2020-03-29 03:01发布

问题:

I am trying to get camera feeds in Windows 8 metro style app so that i can make some changes on it something like augmented reality. I have tried but only able to find how to capture images using CameraCaptureUI(). Can anyone tell me how can i achieve camera feeds for AR?

回答1:

All you need to do is pass in CameraCaptureUIMode.Video for CaptureFileAsync. Here is a sample

CameraCaptureUI dialog = new CameraCaptureUI();
dialog.VideoSettings.Format = CameraCaptureUIVideoFormat.Mp4;

StorageFile file = null;
file = await dialog.CaptureFileAsync(CameraCaptureUIMode.Video);
if (file != null)
{

    IRandomAccessStream fileStream = await   file.OpenAsync(Windows.Storage.FileAccessMode.Read);
    //Do something with the stream
}

EDIT:

In order to apply effects you can use the AddEffectAsync method, for example.

mediaCaptureMgr.AddEffectAsync(MediaStreamType.VideoPreview, "Microsoft.Samples.GrayscaleEffect", null);

The Microsoft Foundation Transform (MFT) implementation of the GrayScaleEffect is [here]. 1. That example should allow you to create your own effects.



回答2:

I blogged about it before.

You need to use a CaptureElement and a MediaCapture object:

var mediaCapture = new MediaCapture(); 
await mediaCapture.InitializeAsync(); 
this.captureElement.Source = mediaCapture; 
await mediaCapture.StartPreviewAsync();