7

jQuery を使用して<video>オブジェクトを動的に書き込み、videojs を実行してそれらを初期化しています。動画を再生した後、もう一度再生しようとすると再生されないことがあり、その時点から、ページを更新しても動画が再生されません。毎回、<video>オブジェクトはレンダリングされますが、ビデオは再生されません。コンソールには何も書き込まれません。エラーはないようです。Chrome を再起動すると問題は解決しますが、一時的なものです。いくつかのビデオを再生した後、問題が再び発生します。

Chrome の他のタブを閉じると実際に問題が解決することがわかったので、何らかのメモリの問題のようです。

Chrome 19.0.1084.46 を実行しています

4

4 に答える 4

17

正確にいくつのvideoタグがありますか?彼らはどんな見た目ですか?preload='none'それらには属性が含まれていますか?ソースビデオはすべてサーバー上にありますか?

video同じソースサーバーを指す1つのページに6つを超えるタグがある場合、「接続の枯渇」が発生する可能性があるため、質問します。

  • Chromeは、単一のサーバーへの6つのオープン接続のみを許可します(URLのDNS名に基づく)
  • html5videoタグのプリロード属性のデフォルト値は'auto'
  • Chromeの自動動作は、一部のデータをプリロードし、接続を開いたままにして、ビデオ用にさらにデータをプルできるようにすることです。

したがって、1つのサーバーを指す1つのページに6つを超えるビデオタグがある場合、ビデオは再生されません。この特定の問題を解決するには、preload属性を次のように設定します。'none'

于 2012-05-20T07:57:59.013 に答える
1

スチュ そうですね。しかし、私の経験では、Chrome は preload="none" 属性を無視して接続を開始することがあります。小さなビデオがたくさんあるサイトを開発しているときに、これには多くの問題がありました。接続は残りのコンテンツ (画像、カスタム フォント (およびカスタム フォントが遅延すると、テキストはレンダリングされません)) をブロックしました。私の解決策は、画像をロードする独自のプリローダーを構築することでした。これにより、少なくとも画像 (デザインの観点から最も重要な側面) が読み込まれるタイミングを制御できるようになりました。

これで画像が表示されない問題は解決しましたが、問題はまだ残っていました。したがって、最善の解決策は、v1.server.com、v2.server.com などのように、同じサーバーを指すサブドメインを設定することです。これは、ファイルを移動する必要がないことを意味し、ブラウザーがより多くのオープン接続を持てるようにすることでメリットが得られます。ただし、DNS ルックアップ時間の増加に注意してください。

于 2013-10-15T12:42:06.567 に答える
0

ここで少し拡張できる同様の関連する問題がありました。

1 ページに 14 の異なる小さなビデオがありましたが、一度に利用できるのは 2 つだけでした。preload = 'none' に設定しても問題は解決しなかったため、データ属性を使用して src を保存し、現在表示されていないすべてのビデオの src を削除しました。

于 2015-07-22T20:36:15.323 に答える