0

何らかの理由で、私のコードは、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 の値を調べると、関数が を返していることがわかりますundefinedundefined操作が完了していない (つまり、ユーザーがまだ写真を作成しておらず、ディスクに保存されていない) ために返されると思われますが、プログラムでカメラ キャプチャ モードをキャンセルするために必要です。文書化された IAsyncOperation オブジェクトの代わりに undefined を返す理由を知っている人はいますか?

ありがとう!

4

1 に答える 1