4

readyStateiPad (iOS v. 5.1.1) では、Safari は仕様に従ってビデオ要素の値を保持していないようです。ビデオソースからの読み込みreadyStateがゼロであっても。

ビデオの を継続的にチェックするデモ jsfiddle をreadyState作成しました。面白い観察:readyState再生ボタンをクリックした後にのみ変化します。

実際、readyState読み込み中に がより高い数値に切り替わることを期待していました (これは、私がテストしたデスクトップ上のすべてのブラウザー (Safari を含む) の場合と同様です)。回避策はありますか? ここで何か間違っていますか?

4

1 に答える 1

6

Appleデベロッパのドキュメントから:

注:preload属性は、Safari5.0以降でサポートされています。iOS上のSafariがプリロードされることはありません。

Appleによると、モバイルデバイスでの望ましい動作は、帯域幅やバッテリーを浪費しないように、リソースをアクティブに要求した後にのみロードが開始されることです。

あなたの質問に関して、これはAppleが仕様を順守していることを意味します。プリロードは発生せず、再生ボタンをクリックした後にのみロードが開始されるためreadyState、その時点の前はゼロです。

ただし、videoタグには、より多くの情報を提供することになっている特別なイベントがありますreadyState

  • onCanplay
  • onCanplaythrough
  • onProgress

繰り返しになりますが、Appleデベロッパライブラリを引用します(DOMイベントを使用してロードの進行状況を監視します)

注:iPadでは、ユーザーがポスターまたはプレースホルダーをクリックするまで、Safariはダウンロードを開始しません。現在、この方法で開始されたダウンロードは進行状況イベントを発行しません。

于 2012-07-28T11:02:13.070 に答える