Windows Phone相机在页面之间切换时会崩溃应用程序

时间:2014-06-26 17:48:27

标签: c# windows-phone-8 camera

我正在用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;
    }

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

1 个答案:

答案 0 :(得分:1)

您还需要处理相机实例。在托管PhotoCaptureDevice对象的页面中:

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