【发布时间】:2014-06-26 17:48:27
【问题描述】:
我正在用 C# 为 Windows Phone 8 创建一个简单的相机应用程序。在主视图上,相机已经初始化。主视图上有一个按钮,可将您带到单独的设置页面。但是,当我按下后退按钮返回带有相机视图的主页面时,应用程序崩溃并且我得到了这个异常:
在 mscorlib.ni.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理
WinRT 信息:无法获取相机。你只能在前台使用这个类。
如果有这个异常的处理程序,程序可以安全地继续。
这是我用来切换到设置页面的代码:
private void Button_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/settings.xaml", UriKind.Relative));
}
在设置页面上,我只是简单地使用返回按钮返回到主页面,这就是发生崩溃的地方。
这是我用于相机初始化的代码:
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
Size resolution = PhotoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back).First();//crashes here
camera = await PhotoCaptureDevice.OpenAsync(CameraSensorLocation.Back, resolution);
video.SetSource(camera);
previewTransform.Rotation = camera.SensorRotationInDegrees;
}
调试器说应用程序在该方法的第二行崩溃。
【问题讨论】:
-
当您导航回主页时执行的代码是什么,因为我猜这就是您的应用程序崩溃的地方。您的设置页面没有问题,您可以正确导航。
-
它只是使用后退按钮导航回来。后退按钮导航由操作系统自动处理,不需要特定的编码。它确实成功返回主页,但当相机再次尝试加载时崩溃。我将相机代码添加到原始帖子中。
-
贴出相机初始化代码。还要在页面导航覆盖的方法中发布任何代码
-
我刚刚发布了相机代码。我没有覆盖任何导航方法以返回主页。我只使用堆栈中的自动后退按钮导航。
标签: c# windows-phone-8 camera