Windows Phone 8相机 - 诺基亚 - 920中的照片捕获设备

时间:2012-12-09 09:55:07

标签: c# xaml camera windows-phone-8

我使用Windows Phone 8中的PhotoCaptureDevice开发了相机应用程序。我可以在诺基亚820中运行此应用程序。但我没有920设备来测试这个应用程序。但是我的一位用户说,这个应用程序无法在诺基亚920设备上运行。应该显示相机取景器的VideoBrush是空白的。你能帮助我吗?如果可能,请在920设备中进行测试。

我在InitializeCamera中使用的确切代码段

private static async Task InitializeCamera()
        {
            PhotoCaptureDevice d = null;

            try
            {
                Windows.Foundation.Size initialResolution = new Windows.Foundation.Size(640, 480);
                Windows.Foundation.Size previewResolution = new Windows.Foundation.Size(640, 480);
                Windows.Foundation.Size captureResolution = new Windows.Foundation.Size(640, 480);


                if (PhotoCaptureDevice.AvailableSensorLocations.Contains(CameraSensorLocation.Back))
                {
                    d = await PhotoCaptureDevice.OpenAsync(CameraSensorLocation.Back, initialResolution);

                    await d.SetPreviewResolutionAsync(previewResolution);
                    await d.SetCaptureResolutionAsync(captureResolution);

                    d.SetProperty(KnownCameraGeneralProperties.EncodeWithOrientation,
                                  d.SensorLocation == CameraSensorLocation.Back ?
                                  d.SensorRotationInDegrees : -d.SensorRotationInDegrees);
                    _device = d;
                }
            }
            catch (Exception e) { Debug.WriteLine(e.Message); }

        }

2 个答案:

答案 0 :(得分:1)

我将你的代码发布到一个项目中,它在我的Lumia 920上运行正常。我不确定你是否在代码的另一部分中有这个,但我唯一做的另外就是在“_device = d;”行:

                   ViewfinderBrush.SetSource(_device);

使用XAML:

        <Rectangle x:Name="Viewfinder">
            <Rectangle.Fill>
                <VideoBrush x:Name="ViewfinderBrush"  />
            </Rectangle.Fill>
        </Rectangle>

需要注意的一点是,SetSource必须在Device初始化之后(即,在OpenAsync之后)。如果您之前设置它,它将无法工作。

答案 1 :(得分:0)

得到了HTC8X,或者我帮助你。 为什么不直接向诺基亚申请借用920? http://blog.dvlup.com/2012/11/20/three-ways-dvlup-can-get-you-a-developer-handset/。你可以保持大约两个星期。