1

html5 ビデオ コントロールとキャンバスを使用して、実行中のビデオのスナップショットをキャプチャするコールバック関数を作成しました。

ループを使用しforて反復し、同じコールバック関数を呼び出してバースト キャプチャを取得しました。

コールバックを追加するalert('')と、警告メッセージが表示されたときにバックグラウンドでビデオが再レンダリングされ、バーストスナップショットは差分写真 (実行中のビデオのフレーム/画像) を撮影するように正常に機能します。しかし、削除するalert('')と、ビデオはバックグラウンドで実行されず、バーストされた画像は異なるのではなく同じです。

コード

for (var i = 0; i < burstcount; i++) {
        var wcam = Webcam;
            wcam.burst_snap(function (dataurl, id) {
                var arrayindex = passedName + "_" + id;
                imgid = imgid + i;
                alert(dataurl);
                burstcapturedata[arrayindex] = dataurl;
            }, i);
            var j = 0;
            while (j < 10000000000) {
                j++;
            }
    }
    DisplayBurstedImages();

}

4

3 に答える 3

1

はい、実際に。アラートは、コードの次の実行を保留します。
コードがアラートで動作する場合は、遅延が必要であることを意味します。すべてが読み込まれる正しい場所にコードを配置して
みてください。setTimeout

于 2015-04-22T13:15:24.763 に答える
0

ビデオをバインドするのに時間がかかると思います。遅延にはsetTimeout関数を使用できます。

var delay =100;

setTimeout(function () {/*your function*/ }, delay);

delay = delay + 300;
于 2015-04-22T13:31:48.473 に答える