出于某种原因,我的代码无法检索调用 Windows.Media.Capture.CameraCaptureUI() 方法的 captureFileAsync 方法时返回的 IAsyncOperation 对象。根据此文档返回 IAsyncOperation 对象。在该文档链接中,它指出:
Return value
Type: IAsyncOperation<StorageFile>
When this operationcompletes, a StorageFile object is returned.
所以这是我的代码:
var dialog = new Windows.Media.Capture.CameraCaptureUI();
var aspectRatio = { width: 4, height: 3 };
dialog.photoSettings.croppedAspectRatio = aspectRatio;
appSession.InAsyncMode = dialog.captureFileAsync(Windows.Media.Capture.CameraCaptureUIMode.photo).done(function (file) {
if (file) {
self.addPage(URL.createObjectURL(file));
} else {
WinJS.log && WinJS.log("No photo captured.", "sample", "status");
}
}, function (err) {
// None taken
});
当我检查 appSession.InAysncMode 的值时,我看到函数返回undefined
. 我怀疑它返回undefined
是因为操作未完成(即用户尚未创建照片,并且尚未将其保存到光盘),但我需要它以通过编程方式取消相机捕获模式。有谁知道为什么它会返回 undefined 而不是记录的 IAsyncOperation 对象?
谢谢!