HTML5のフレーム単位での表示/フレームシーク?
2023-10-25 02:13:18
質問
HTML5を表示する方法を探しています。
<video>
を、フレームごとに表示する方法を探しています。
シナリオ: 押すと次のフレームにスキップする追加のボタンを持つ、動画があります。
これを行うための最良の方法は何だと思いますか?
-
普通に動画を再生する。
を聴く
timeUpdate
イベント (FireFox ではフレームごとに呼び出される) を聞く。 を呼び出し、ビデオを一時停止するだけです。しかし、他のブラウザは Firefox のような動作はしません。 -
を変更します。
currentTime
要素を手動で +1/24 秒に変更し、ここで "24" はフレーム レートです。ただし、FPSを取得する方法については、まったくわかりません。 - その他、思いつく限りの役に立つ方法。
編集
私が見つけたのは この非常に便利なHTML5テストページ これは、すべてのブラウザが正確なフレーム シークを実現する能力を追跡するものです。
どのように解決するのですか?
フレーム レートを知る必要がありますが、ほとんどのブラウザーは 2 番目のアプローチを許可しているようです。しかし、Opera は例外で、最初のアプローチと同様のアプローチを必要とします (結果は完璧ではありません)。以下は のデモページです。 で、29.97 フレーム/秒のビデオ (米国のテレビ規格) を使用しています。広範なテストを行っていないため、IE 9、Firefox 4、または任意のブラウザの将来のバージョンでは動作しない可能性があることに注意してください。
HTMLです。
<p id="time"></p>
<video id="v0" controls tabindex="0" autobuffer preload>
<source type="video/webm; codecs="vp8, vorbis"" src="http://www.html5rocks.com/tutorials/video/basics/Chrome_ImF.webm"></source>
<source type="video/ogg; codecs="theora, vorbis"" src="http://www.html5rocks.com/tutorials/video/basics/Chrome_ImF.ogv"></source>
<source type="video/mp4; codecs="avc1.42E01E, mp4a.40.2"" src="http://www.html5rocks.com/tutorials/video/basics/Chrome_ImF.mp4"></source>
<p>Sorry, your browser does not support the <video> element.</p>
</video>
JavaScript(ページロード時に実行され、簡潔さのためにjQuery 1.4.4を使用)。
var vid = $('#v0')[0];
vid.onplay = vid.onclick = function() {
vid.onplay = vid.onclick = null;
setTimeout(function() {
vid.pause();
setInterval(function() {
if($.browser.opera) {
var oldHandler = vid.onplay;
vid.onplay = function() {
vid.pause();
vid.onplay = oldHandler;
};
vid.play();
} else {
vid.currentTime += (1 / 29.97);
}
}, 2000);
}, 12000);
setInterval(function() {
$('#time').html((vid.currentTime * 29.97).toPrecision(5));
}, 100);
};
関連
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] HTMLで表示される上下の三角形(軸のない矢印)に使用できる文字は何ですか?
-
[解決済み] inline/inline-block要素間のスペースを削除するにはどうすればよいですか?
-
[解決済み] HTML5の数値入力のスピンボックスを非表示にすることはできますか?
-
[解決済み] HTML5でfloat入力タイプはありますか?
-
[解決済み] HTML5/Canvas/JavaScriptを使用してブラウザ内のスクリーンショットを撮影する
-
[解決済み] ボディの高さをブラウザの高さの100%にする
-
[解決済み] 特定のクラスや属性を持たない要素を選択するCSSセレクタは書けますか?
-
[解決済み] 親ディバイスの高さを指定せずに、子ディバイスの高さを100%にする方法は?
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リンクのように動作するHTMLボタンを作成する方法
-
[解決済み] 画像の横のテキストを縦に揃える?
-
[解決済み] divの中のテキストを縦に揃えるにはどうしたらいいですか?
-
[解決済み] HTMLにPDFを埋め込むおすすめの方法とは?
-
[解決済み] ローカルストレージとCookieの比較
-
[解決済み] 複数のノンブレイキングスペース("nbsp")ではなく、タブスペースを使用しますか?
-
[解決済み] hr要素の色を変更する
-
[解決済み] ラジオボタンをデフォルトで選択するには?[重複しています]
-
[解決済み] Webサイトのブラウザタブアイコン(ファビコン)を追加する方法を教えてください。
-
[解決済み] HTML5でminlengthの検証属性はありますか?