Windows Phone摄像头在页面切换时导致应用崩溃

本文关键字:应用 崩溃 摄像头 Phone Windows | 更新日期: 2023-09-27 18:10:37

我正在用c#为Windows Phone 8创建一个简单的相机应用程序。在主视图中,相机已经初始化。主视图上有一个按钮,可以将您带到单独的设置页面。但是,当我按后退键返回到带有相机视图的主页时,应用程序崩溃了,我得到了这个异常:

类型为'System '的异常。InvalidOperationException'在mscorlib.ni.dll中发生,但未在用户代码中处理

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;
    }

调试器说应用程序在该方法的第二行崩溃

Windows Phone摄像头在页面切换时导致应用崩溃

您还需要处置相机实例。在包含PhotoCaptureDevice对象的页面中:

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
    base.OnNavigatedFrom(e);
    camera.Dispose();
}