我使用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); }
}
答案 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/。你可以保持大约两个星期。