problema de readyState con elementos de video HTML5 en ios safari

Parece que en el iPad (iOS v. 5.1.1), Safari no mantiene el valor readyState un elemento de readyState acuerdo con las especificaciones. Incluso mientras se carga desde la fuente de video readyState es igual a cero.

Hice una demostración jsfiddle que comtesting continuamente el readyState del readyState . Una observación divertida: el estado readyState cambia solo después de hacer clic en el button Reproducir.

En realidad, he esperado que el readyState cambie a un número mayor durante la carga (como es el caso de todos los browseres en el escritorio que he probado, incluido Safari). ¿Hay alguna solución? ¿Estoy recibiendo algo mal aquí?

De la documentation del desarrollador de Apple :

Nota: el atributo de precarga es compatible con Safari 5.0 y versiones posteriores. Safari en iOS nunca precarga.

De acuerdo con Apple, el comportamiento deseado en un dispositivo mobile es que la carga solo se inicia después de que solicita activamente el recurso para no desperdiciar el ancho de banda o la batería.

Con respecto a su pregunta, esto significa que Apple se adhiere a la especificación. Como no se produce ninguna precarga y la carga solo comienza después de hacer clic en el button reproducir, el estado readyState es cero antes de ese momento.

Sin embargo, la label de video tiene events especiales que se supone que brindan más información que readyState .

  • onCanplay
  • onCanplaythrough
  • onProgress

Nuevamente, citando la biblioteca de desarrolladores de Apple (Usando DOM Events para monitorear el progreso de la carga)

Nota: en el iPad, Safari no comienza a downloadse hasta que el usuario click el póster o el marcador de position. Actualmente, las descargas comenzadas de esta manera no emiten events de progreso.