2010-11-17 8 views
5

[EDIT: el uso de una página de prueba simplificado sin Javascript, etc.]archivos de audio HTML5 no se cargan en Safari

Tengo una página web que contiene cuatro archivos de audio. Estos archivos se sirven como HTML5 <audio> con archivos .mp3, que deben reproducirse en Safari. (No he tenido problemas con los archivos .ogg en Firefox y Chrome.)

Cada vez que vuelvo a cargar la página, entre uno y tres de los archivos se cargan correctamente y el resto no se carga, aunque no lo hacen t dar un error, y el mensaje 'cargando' desaparece; es como si estuvieran cargando con un tamaño de 0B. Qué archivos funcionan y cuáles no parecen completamente aleatorios: he visto cargar cada uno de ellos y cada uno de ellos falla más de una vez.

¿Cómo puedo hacer que todos estos archivos se carguen correctamente?

+1

estoy teniendo este mismo problema exacto; Estoy completamente desconcertado por eso. –

+0

¿Pudo resolver esto? Estoy enfrentando exactamente el mismo problema. Incluso si recargo el audio en un evento detenido, se detiene sin parar una y otra vez. Nunca pagará más de un par de segundos. – Kolyunya

+0

Puede ser útil saber que Safari parece requerir extensiones de archivos para solicitudes de medios. El tipo de mime correcto (en el elemento de audio y en la respuesta) no es suficiente que cargue el recurso. – pwray

Respuesta

8

que estaba teniendo un problema similar con los archivos no se carga y se acercó con esta solución. Parece que el audio/video HTML5 puede "estancarse", lo que significa que simplemente se detiene la carga. Afortunadamente, hay un evento de "pérdida" que se activa cuando sucede esto. Lo que hice fue escuchar este evento y cuando/si se dispara, simplemente intente forzar que el audio se cargue nuevamente.

Ejemplo utilizando jQuery:

// the event is 'onstalled' - 'stalled' in the jquery case 
    $("audio").bind("stalled", function() { 
     var audio = this; 
     audio.load(); 

     // Threw in these two lines for good measure. 
     audio.play(); 
     audio.pause(); 
    }); 
+0

En este contexto '$ (this) [0]' es equivalente a 'this' – incarnate

+0

¿Alguna idea si esto también funciona para soundmanager2? –

0

Mirando fuente generado de la página se carga como primera fuente de un archivo OGG a continuación, un archivo mp3 en este orden exacto

Pero, como se especifica en http://html5doctor.com/native-audio-in-the-browser/ archivo está en orden inverso, por lo que intenta hacer lo mismo

de otro modo tratar de servir en sus fuentes también un audio AAC en un recipiente M4A/mp4

+0

Gracias por la respuesta. Invertí el orden de los tipos de archivos y no hace la diferencia. Trataré de usar archivos m4a, pero realmente no está claro por qué debería hacerlo, ya que Safari teóricamente admite archivos mp3, y algunos de ellos funcionan bien. –

Cuestiones relacionadas