Windows phone 8 Windows Phone 8中的照相机应用程序中不支持异常

Windows phone 8 Windows Phone 8中的照相机应用程序中不支持异常,windows-phone-8,Windows Phone 8,我正在Windows Phone 8上工作,因为我是这项技术的新手,我需要一个关于摄像头的帮助。我正在进行摄像头测试,我在back key press事件中遇到了一个NotSupportedException(不支持指定方法)类型的异常。如果我在初始化相机后立即按下back键,那么它将使应用程序崩溃。我没有得到任何与这个问题有关的消息来源。 有人能帮我解决这个问题吗 谢谢你的页面,可能是这样的 <Canvas.Background> <Video

我正在Windows Phone 8上工作,因为我是这项技术的新手,我需要一个关于摄像头的帮助。我正在进行摄像头测试,我在back key press事件中遇到了一个
NotSupportedException
(不支持指定方法)类型的异常。如果我在初始化相机后立即按下back键,那么它将使应用程序崩溃。我没有得到任何与这个问题有关的消息来源。 有人能帮我解决这个问题吗


谢谢你的页面,可能是这样的

        <Canvas.Background>
        <VideoBrush x:Name="viewfinderBrush">
            <VideoBrush.RelativeTransform>
                <CompositeTransform x:Name="viewfinderBrushTransform" CenterX=".5" CenterY=".5" Rotation="90" />
            </VideoBrush.RelativeTransform>
        </VideoBrush>
       </Canvas.Background>
                <StackPanel Name="stkLoading" Height="50" Canvas.Top="245" Visibility="Collapsed">
                    <TextBlock Foreground="Red" Text="Scanning.." HorizontalAlignment="Center"/>
                    <ProgressBar IsIndeterminate="True" Width="480"/>
                </StackPanel>
            </Canvas>


Cs代码

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
        {
            base.OnBackKeyPress(e);
//make some navigation like this
                    NavigationService.Navigate(new Uri("/View/EditDocument.xaml, UriKind.RelativeOrAbsolute));
        }

   protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            try
            {
                InitializeCamera(); 
            }
            catch (Exception ex)
            {
                MessageBox.Show("Problem occured in camera declaration.");
            }
       }

        public void InitializeCamera()
        {
            try
            {
                if (myCamera != null)
                {
                    myCamera.AutoFocusCompleted -= OnCameraAutoFocusCompleted;
                    myCamera.Initialized -= myCamera_Initialized;
                    myCamera.CaptureCompleted -= new EventHandler<CameraOperationCompletedEventArgs>(camera_CaptureCompleted);
                    myCamera.CaptureImageAvailable -= new EventHandler<Microsoft.Devices.ContentReadyEventArgs>(camera_CaptureImageAvailable);
                }
                viewfinderBrush = null;
                canvasCameraView.Background = null;
                myCamera = null;
                bdrInitializingCamera.Visibility = Visibility.Visible;
                viewfinderBrush = new VideoBrush();
                CompositeTransform ct = new CompositeTransform();
                ct.CenterX = .5;
                ct.CenterY = .5;
                ct.Rotation = 90;
                viewfinderBrush.RelativeTransform = ct;
                canvasCameraView.Background = viewfinderBrush;
                myCamera = new Microsoft.Devices.PhotoCamera(CameraType.Primary);
                viewfinderBrush.SetSource(myCamera);
                myCamera.Initialized += myCamera_Initialized;
                myCamera.CaptureCompleted += new EventHandler<CameraOperationCompletedEventArgs>(camera_CaptureCompleted);
                myCamera.CaptureImageAvailable += new EventHandler<Microsoft.Devices.ContentReadyEventArgs>(camera_CaptureImageAvailable);
            }
            catch (Exception ex)
            {
                if (MessageBox.Show("An error occured in camera initialization, please try again. note \n " + ex.Message) == MessageBoxResult.OK)
                {
                   //Make a navigation
                }
            }
        }
backkeypress上受保护的覆盖无效(System.ComponentModel.CancelEventArgs e)
{
基础。按Backkeypress(e);
//像这样做一些导航
NavigationService.Navigate(新Uri(“/View/EditDocument.xaml,UriKind.RelativeOrAbsolute));
}
受保护的覆盖无效OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
基地。导航到(e);
尝试
{
InitializeCamera();
}
捕获(例外情况除外)
{
MessageBox.Show(“摄像机声明中出现问题”);
}
}
public void InitializeCamera()
{
尝试
{
如果(myCamera!=null)
{
myCamera.AutoFocusCompleted-=OnCameraAutoFocusCompleted;
myCamera.Initialized-=myCamera\u Initialized;
myCamera.CaptureCompleted-=新事件处理程序(camera\u CaptureCompleted);
myCamera.CaptureImageAvailable-=新事件处理程序(camera\u CaptureImageAvailable);
}
viewfinderBrush=null;
canvasCameraView.Background=null;
myCamera=null;
bdrinitalizingcamera.Visibility=可见性.Visibility;
viewfinderBrush=新的VideoBrush();
CompositeTransform ct=新CompositeTransform();
ct.CenterX=.5;
ct.CenterY=.5;
ct旋转=90;
viewfinderBrush.RelativeTransform=ct;
canvasCameraView.Background=viewfinderBrush;
myCamera=新的Microsoft.Devices.PhotoCamera(CameraType.Primary);
viewfinderBrush.SetSource(myCamera);
myCamera.Initialized+=myCamera\u Initialized;
myCamera.CaptureCompleted+=新事件处理程序(camera\u CaptureCompleted);
myCamera.CaptureImageAvailable+=新事件处理程序(camera\u CaptureImageAvailable);
}
捕获(例外情况除外)
{
if(MessageBox.Show(“摄像机初始化时出错,请重试。注意\n”+ex.Message)==MessageBoxResult.OK)
{
//导航
}
}
}

您是否在清单中添加了权限?@techloverr问题发生在camerayes初始化之后。我已在清单文件中添加了ID\u CAP\u ISV\u摄像头功能。按back键时还会发生什么?请在实际代码中共享代码段。我没有收到错误,它将在完成调试后出现,但摄像头对象应在何处显示onnavigatedfrom()或onnavigatingfrom()中的ose?使用我提供的解决方案,您不需要处理对象。但是,如果您被困在某个地方,那么最好在onnavigatedfrom上处理它。