• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何在Windows 8中正确初始化相机?

JavaScript 来源:lorenzo373 5次浏览

我正试图在Windows 8上初始化摄像头。我已启用项目和我的Windows 8设备上的摄像头功能。如何在Windows 8中正确初始化相机?

这里是我的代码:

var dialog = new Windows.Media.Capture.CameraCaptureUI(); 
var aspectRatio = { width: 1, height: 1 }; 

dialog.photoSettings.croppedAspectRatio = aspectRatio; 
dialog.captureFileAsync(Windows.Media.Capture.CameraCaptureUIMode.photo).done(function (file) { 
    if (file) { 
     editPreviewPicture(file); 
     mainApp.pictureAccept('control'); 
    } else { 

    } 
}, function (e) { 
    console.log("Error while opening camera: ", e); 
}); 

在有“captureFileAsync”我收到以下错误行:

Runtime-error JavaScript: Access Denied.

我有双重检查所需要的一切,甚至下载示例项目检查代码并测试相机,在该项目中一切正常。

在此先感谢。

===========解决方案如下:

我发现了这个问题。

上述功能是在这个代码块:

WinJS.UI.Pages.define("/pages/queue/view.html", { 

    ready: function (element, options) { 

    } 
} 

的问题是:该准备回调是用于DOM元素,而不是为了JavaScript,因此它仍然处理ASYNC代码,和WinJS不能正确处理多个aSync进程。这就是为什么我得到“访问被拒绝”。

现在来解决这个问题。您需要用timeout创建一个承诺,如下所示:

WinJS.Promise.timeout(500).then(
    function (complete) { 
     // Camera initialization/Other aSync code here 
    }, 

    function (error) { } 
); 

希望这有助于一些人!


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)