2

HTML5ビデオとカスタムコントロールをいじって、待機イベントを使用して読み込み中の画像を理想的に表示したいと思っていますが、今のところはコンソールに書き込むだけで十分です。

待機中のイベント

次のフレームが使用できないため再生が停止しましたが、ユーザーエージェントはそのフレームがやがて使用可能になることを期待しています。

ここに例を設定しました-> http://jsbin.com/uvipev/2/edit#javascript,html,live

コントロールを除いたビデオコードは次のとおりです。

<video controls preload="meta">
   <source src="http://www.tools4movies.com/dvd_catalyst_profile_samples/The%20Amazing%20Spiderman%20tablet.mp4" />
   This is video fallback
</video>

そして、これが待機中のイベントの私のイベントリスナーです。

 var video = document.getElementsByTagName('video')[0];   

    video.addEventListener('waiting', function() {
        console.log('waiting');
    }, false);

なぜこれが実行されていないのか誰かがわかりますか?待っているイベントは私が必要としているもののように聞こえます。

4

2 に答える 2

5

ビデオが初めてバッファリングされている間、待機中の画像を表示したいとお考えですか?もしそうなら、あなたはおそらく探していませんwaiting

このデモをご覧ください:http ://www.w3.org/2010/05/video/mediaevents.html

play()プリロードせずに呼び出すとwaiting、キャッシュされたコピーであっても、火災が発生するはずです。load()前に電話をかけた場合、次のフレームが常に利用可能である可能性があるため、火がplay()表示されない可能性があります。waiting

最良のプロセスは、画像を表示し、呼び出してから、またはのいずれかload()を待つことです。その時点で、画像を非表示にして開始します。canplaycanplaythroughplay()

アップデート

このフィドルのビデオを見る:http://jsfiddle.net/bnickel/zE8F3/ Chromeはイベントを送信していませんが、ビデオがフリーズした直後にイベントwaitingを送信しています。stalledおそらく、サポートしている各ブラウザでどのように機能するかを確認する必要があります。VideoJSのようなプレーヤーは、ブラウザーの多くの不整合に対処するため、巨大(〜142KB)であることを覚えておいてください。

于 2012-07-09T21:23:29.367 に答える
4

ここには、「バッファアンダーラン」シナリオでのさまざまなブラウザの動作を文書化しようとする優れたグラフがあります。これは、あなたが探しているものだと思います。

https://web.archive.org/web/20130902074352/http://www.longtailvideo.com/html5/buffering/

残念ながら、ブラウザは非常に一貫性がないため、「待機中」のイベントはあなたが望むものであると私は信じていますが、Chromeはそれを起動しません。

私は、プレーヤーがビデオの経過時間に基づいてバッファリングしているときに「推測」を試し、再生/一時停止などをチェックしてきました。時間を増やすべき時期を知るためのイベント。

于 2012-11-16T17:27:16.267 に答える