Windows8中如何正确初始化相机?
How to initialize the camera correctly in 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) {
}
}
问题是:ready回调是针对DOM元素的,不是针对javascript的,所以它还在处理aSync代码,WinJS无法正确处理多个aSync进程。这就是为什么我得到 'Access denied'.
现在解决这个问题。您需要创建一个带有超时的承诺,如下所示:
WinJS.Promise.timeout(500).then(
function (complete) {
// Camera initialization / Other aSync code here
},
function (error) { }
);
希望这对一些人有所帮助!
我正在尝试在 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) {
}
}
问题是:ready回调是针对DOM元素的,不是针对javascript的,所以它还在处理aSync代码,WinJS无法正确处理多个aSync进程。这就是为什么我得到 'Access denied'.
现在解决这个问题。您需要创建一个带有超时的承诺,如下所示:
WinJS.Promise.timeout(500).then(
function (complete) {
// Camera initialization / Other aSync code here
},
function (error) { }
);
希望这对一些人有所帮助!