Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Windows 8中正确初始化相机?_Javascript_Windows_Camera_Winjs - Fatal编程技术网

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

Javascript 如何在Windows 8中正确初始化相机?,javascript,windows,camera,winjs,Javascript,Windows,Camera,Winjs,我正在尝试在windows 8上初始化相机。我已经在项目中以及我的windows 8设备上启用了网络摄像头功能 这是我的密码: var dialog = new Windows.Media.Capture.CameraCaptureUI(); var aspectRatio = { width: 1, height: 1 }; dialog.photoSettings.croppedAspectRatio = aspectRatio; dialog.captureFileAsync(Windo

我正在尝试在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”行中,我得到以下错误:

运行时错误JavaScript:访问被拒绝

我已经仔细检查了所有需要的东西,甚至下载了示例项目来检查代码和测试相机,在那个项目中一切都很好

提前谢谢。

我发现了问题

上述函数在此代码块中:

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

    ready: function (element, options) {

    }
}
问题是:ready回调用于DOM元素,而不是javascript,因此它仍然在处理异步代码,WinJS无法正确处理多个异步进程。这就是我被“拒绝访问”的原因

现在来解决这个问题。您需要创建一个带有超时的承诺,如下所示:

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

    function (error) { }
 );
希望这能帮助一些人