Tengo una pequeña aplicación web, que reproduce bits de sonido realmente cortos con el clic de varios botones. Se dirige explícitamente a Safari móvil en iOS (iPad).Safari móvil: manifiesto de audio + caché
Después de leer aquí y en otro lugar sobre las varias "deficiencias" de audio HTML5 en este contexto en el Safari móvil y probando algunos "trucos", estoy atrapado en una situación donde Safari parece simple (por la falta de una palabra mejor) roto:
Puedo reproducir el sonido A (tarda mucho tiempo para que comience - supongo que está descargando [de nuevo]?) con el clic del botón A. Después de eso, haga clic en el botón B reproducirá inmediatamente el sonido A nuevamente. Lo mismo para el botón C. En algunos casos, reproducirá un sonido diferente, a veces incluso el correcto. Pero principalmente sonido A. El formato en uso era .aiff, ahora es .m4a.
Después de escribir unas pocas versiones diminutas a mí mismo, decidí ir con la biblioteca Buzz para manejar la carga de sonido/juego/etc ..
Curiosamente, su demo incluye un juego, lo que hace casi exactamente lo Necesito y desencadena el mismo comportamiento defectuoso. Incluso terminé en una situación en la que cualquier reproductor de audio de Safari móvil en cualquier pestaña reproducía un sonido determinado del juego de demostración de Buzz (!).
Esperaba que un manifiesto de caché pudiera ayudar a superar las limitaciones de precarga de Apples y forzar a la aplicación a reproducir el sonido justo después de presionar el botón en modo fuera de línea. Pero después de confirmar que toda la aplicación había sido almacenada en la memoria caché, no puedo reproducir/escuchar ningún sonido en modo fuera de línea.
¿Alguien ha logrado que algo como esto funcione de alguna manera? (- Después de haber visto cómo Apple se encarga de ciertas cosas, yo no esperes mucho la respuesta, aunque ...)
Actualización 1:
El ejemplo de esta respuesta provoca el mismo efecto: How to synthesize audio using HTML5/Javascript on iPad
actualización 2:
La actualización de iOS (y Safari) parece resolver el error de audio. Sin embargo, el manifiesto de caché no parece afectar los archivos de audio. Estos archivos simplemente no están disponibles en absoluto.
Después de eliminar el manifiesto de caché, la aplicación funciona bien, pero agregarla a la "pantalla de inicio" y volver a cargarla evita que el audio también se reproduzca.
¡Muchas gracias! Aquí hay muchos buenos consejos. Definitivamente voy a probar algunas cosas. – polarblau
Una cosa adicional que debes saber es que es imposible almacenar en caché audio o video en iOS. Incluso con aplicación. – idbehold
puede dar un ejemplo de código para - mover la posición de reproducción a la posición de inicio adecuada. Además, si quieres tocar la canción durante 3 segundos, ¿cómo la paras? – Jon