在Visual Studio 13 for Windows Phone 8.1上开发Simple Camera应用程序时激活主摄像头?

时间:2014-07-21 11:50:33

标签: c# windows-phone-8 windows-phone

我是初学者和刚刚介绍WP应用程序开发的学生,至于我的第一个项目,我决定构建一个功能有限的非常简单的相机应用程序。到目前为止,我准备好了我的GUI,我的问题是,如何激活主摄像头(或在前置摄像头和主摄像头之间切换)?这是我OnNavigatedTo部分的代码,用于打开手机的前置摄像头。

protected async override void OnNavigatedTo(NavigationEventArgs e)
{
    Windows.Phone.UI.Input.HardwareButtons.BackPressed += BackButtonPress;

    media = new MediaCapture();

    await media.InitializeAsync();

    ////rotation

    media.SetPreviewRotation(VideoRotation.Clockwise270Degrees);

    // VideoRotation previewRotation = media.GetPreviewRotation();

    ////start Capture preview

    ////capturePreview is a CaptureElement defined in XAML.

    this.capPrev.Source = media;

    await media.StartPreviewAsync();
}

我可能错过了一行简单的代码,我不知道。我的应用程序现在启动前置摄像头而不是主摄像头。如何切换到主摄像头? (我在appbar上准备好了开关按钮,目前无效)。 谢谢

2 个答案:

答案 0 :(得分:0)

欢迎使用Stackoverflow。

首先,我没有得到你在代码中写的内容。

这是Sample& article符合您的要求 如果您遇到任何问题,请指出您的问题。

祝你好运

答案 1 :(得分:0)

您可以使用下面给定的行来枚举相机。

var set = new MediaCaptureInitializationSettings();
var devices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);
set.VideoDeviceId = devices[0].Id;   // You should choose any value from devices collection

media = new MediaCapture();
await media.InitializeAsync(set);

不要忘记在OnNavigatedFrom事件中处理相机。

protected async override void OnNavigatedFrom(NavigationEventArgs e)
{
    await _camCapture.StopPreviewAsync();
    media.Dispose();
}