0

<video>ビデオのタイムラインをかなり飛び回る、かなり複雑なエクスペリエンスを備えたサイトを構築しています。できるだけスムーズに動作させるために、ビデオが完全にバッファリングされるまで再生を開始しないことをお勧めします。

私はこれをセットアップしてデスクトップ ブラウザーで作業しています (`preload="auto" を使用すると、必要な場所に移動できます) が、もちろんモバイル ブラウザーはコンテンツをプリロードせず、ビデオ バッファリングを開始するためにユーザーの操作が必要です。

私の質問: Mobile Safari で、ユーザーが [再生] をタップした後、完全にダウンロードされるまでビデオの再生を開始しないことは可能ですか?

役立つ場合は、 Popcorn HTML5 メディア フレームワークを使用しています。

4

1 に答える 1

4

canplaythroughJavaScript でサブスクライブできるという DOM イベントがあります。このイベントは、ブラウザが一時停止せずにビデオ全体を再生できると推定したときに呼び出されます。

EDIT : 同様に、progressイベントを使用して、バッファリングされたビデオの量を判断できます。

var player = document.getElementById('video_player'); // The <video> element
player.addEventListener('progress', onVideoProgressUpdate, false);

function onVideoProgressUpdate(e) {
    var percentageBuffered = 0;

    if (player.buffered.length > 0 && player.buffered.end && player.duration) {
        percentageBuffered = player.buffered.end(0) / player.duration;
    } else if (player.bytesTotal != undefined && player.bytesTotal > 0 && player.bufferedBytes != undefined) {
        percentageBuffered = player.bufferedBytes / player.bytesTotal;
    }

    if (percentageBuffered == 1) { // 100% of the video has been buffered
        player.Play();
    }
}
于 2013-10-31T09:39:45.870 に答える