C# 在Visual Studio 13 for Windows Phone 8.1上开发简单的摄像头应用程序时激活主摄像头?
我是一名初学者,也是一名刚刚被介绍到WP应用程序开发的学生。至于我的第一个项目,我决定构建一个功能有限的非常简单的摄像头应用程序。到目前为止,我已经准备好了GUI,我的问题是,如何激活主摄像头或在前摄像头和主摄像头之间切换?这是我在OnNavigatedTo部分的代码,该部分打开了手机的前摄像头C# 在Visual Studio 13 for Windows Phone 8.1上开发简单的摄像头应用程序时激活主摄像头?,c#,windows-phone-8,windows-phone,C#,Windows Phone 8,Windows Phone,我是一名初学者,也是一名刚刚被介绍到WP应用程序开发的学生。至于我的第一个项目,我决定构建一个功能有限的非常简单的摄像头应用程序。到目前为止,我已经准备好了GUI,我的问题是,如何激活主摄像头或在前摄像头和主摄像头之间切换?这是我在OnNavigatedTo部分的代码,该部分打开了手机的前摄像头 protected async override void OnNavigatedTo(NavigationEventArgs e) { Windows.Phone.UI.Input.Hardw
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上准备好了切换按钮,它目前什么都不做。
谢谢欢迎来到Stackoverflow 首先,我没有得到你在代码中写的东西 这是为您的要求准备的(&A) 但如果您面临任何问题,请说明您的问题
祝您好运您可以使用下面给定的行枚举相机
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事件中处置相机
很抱歉代码集不完整,我的意思是让读者知道,这就是我在OnNavigatedTo部分中写的,即应用程序在加载页面时所做的操作,而这组代码在加载时会激活前置摄像头。正如我所说的,我希望在应用程序加载时尝试激活主摄像头。感谢您的回复和链接,我正在使用Visual Studio Express 2013,我找到的大多数示例和教程都是在VS 2012上,这有点不同,让我更加困惑。请看我在回复中发布的示例:很抱歉,我没有阅读更新的评论就回复了您。再次感谢您,我正在浏览示例代码,并将询问我是否偶然发现了一些我不知道的内容。谢谢您的回复。我的GUI上有一个切换摄像头按钮,我需要生成一个点击事件,该事件可以切换摄像头,前后切换,反之亦然。至于set.VideoDeviceId=devices[0].Id;//您应该从设备集合中选择任何值。我是否将0替换为2?还是只有一个?而且,这可能很愚蠢,但为什么应用程序启动时使用的是前置摄像头而不是主摄像头?有没有一行我遗漏了?谢谢不,你没有遗漏任何代码。前摄像头是默认设置。您需要检查devices变量的值。我认为它将有两个值,所以第0个值将用于前摄像头,另一个用于后摄像头。要切换相机,你必须用相应的设置重新初始化相机。一旦我写了,这可能会有点帮助。另外请注意,将此代码放在OnNavigatedTo中不是一个好主意。谢谢,这篇文章很好!告诉我ffc是默认的。我们初学者需要这些小而重要的信息,呵呵。无论如何,我使用了OnNavigatedTo上的代码,因为当用户按钮单击/轻触另一个页面(主页)上的按钮时,我的相机会启动。为了让您更清楚,用户点击主页上的“捕获照片”按钮,相机将在其他页面启动,因此我认为将其添加到onNavigatedTo将直接启动相机。还有别的办法吗?在这里如果你为WinRT工作,你还必须处理暂停/恢复。解决了我的问题,谢谢@Romasz
protected async override void OnNavigatedFrom(NavigationEventArgs e)
{
await _camCapture.StopPreviewAsync();
media.Dispose();
}