3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iPhone で video タグを使う場合、最初のフレームを読み込まず画面が一色のままになる問題の対処

Posted at

問題

HTML で video タグを貼った場合、動画の最初のフレームをプレビュー画面として表示して欲しい。
これはほとんどの環境でそういう仕様になっているが、iPhone はそうなっていない。

原因

以下でやり取りがある通り、比較的近年になって起こるようになった問題のようだ。

原因は iPhone の video タグの実装で preload に何を指定しても再生するまで動画を読み込まないこと。

にもある通り preload="auto" は「読み込んでも良い」というだけで、別段読み込まなくても良いという解釈ができる。 そのため、iPhoneでは通信量削減のために自動的に動画を読み込まないものと推測される。
preload は auto, metadata, none の値を設定可能だが、「必ず読み込め」という指示はできない。 そのため、実装依存で掲題のような何も表示されない画面が表示されることになる。

対処

#t=0.00001 などを src の末尾に付与する

#t=... は再生する動画の範囲を指定するための構文である。
そのため、これで始点をわずかに開始から動かすことで、強制的に動画を読み込ませるというハックができる。

より細かくは上記を参照。

poster を作成してその画像を poster 属性で指定する

そもそも、動画の最初を自動表示するという機能に頼らず、poster 属性を利用して適切な画像をプレビューとして表示すれば対処できる。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?