実際にこれを行う方法を理解するには時間がかかりすぎましたが、私は最終的に方法を見つけたのでここで共有しようとしています!ローディングはすべてのビデオがしなければならないものなので、あなたはそれについて考えるときばかげています。 html5ビデオ規格を作成する際には、これを考慮に入れたと思います。
私が働いていた(ではないでしょう)している必要がありますと思ったことを私の元の理論は、この
- だったのjsとcssの
- 経由で読み込むときにビデオに負荷のBG画像を追加する場合
をプレイする準備ができて削除します
シンプル、右?問題は、ソース要素が設定されたとき、またはvideo.src属性が設定されたときに背景画像を表示できなかったことです。天才/運の最終的なストロークは、ポスターが何かに設定されていれば、背景イメージが消えないことを(実験を通じて)知ることでした。私は偽のポスター画像を使用していますが、透明な1x1画像でもうまくいくと思います(ただし、別の画像を持つことについてはどうしても心配です)。だからこれはおそらくハックの一種ですが、それは動作し、コードに余分なマークアップを追加する必要はありません。つまり、html5ビデオを使ってすべてのプロジェクトで機能します。
HTML
<video controls="" poster="data:image/gif,AAAA">
<source src="yourvid.mp4"
</video>
CSS(JSでビデオに適用されるロードクラス)
video.loading {
background: black url(/images/loader.gif) center center no-repeat;
}
JSは
$('#video_id').on('loadstart', function (event) {
$(this).addClass('loading');
});
$('#video_id').on('canplay', function (event) {
$(this).removeClass('loading');
$(this).attr('poster', '');
});
これは私のために完璧に動作しますが、唯一のChromeとSafariでテストマック。誰かがバグや改善を見つけたらお知らせください!
はこんにちは、私はすでに行われていましたポスター。ユーザーが「再生」ボタンをクリックして再生を開始するまでに時間差が生じる場合があります。 –
ビデオの黒が表示されている場合は、ビデオをトリミングして最初の黒を取り除くか、同じ場所の画像をビデオ、ユーザーが再生を押すと動画が再生されていることを確認し、動画を再生していた最後の画像をバッファリングすると表示されます –
asp.netアプリはモバイルページなので、動画をクリックする必要がありますビデオを再生する(アンドロイド、iphoneは自動再生をサポートしていません)。私はポスターとして "ローディング"ロゴを作ることができません。さもなければ、ユーザーはそれを混乱させます。私は、ユーザーがiPad上で再生ボタンをクリックすると、ローディングロゴを表示したい。 –