2010-11-17 18 views
5

[EDIT: utilizzando una pagina di prova semplificata senza Javascript ecc]file HTML5 audio non riescono a caricare in Safari

Ho una pagina web che contiene quattro file audio. Questi file sono forniti come HTML5 <audio> con file .mp3, che dovrebbero essere riprodotti in Safari. (Non ho avuto problemi con i file .ogg in Firefox e Chrome.)

Ogni volta che ricarico la pagina, tra uno e tre file si caricano correttamente, e il resto non riesce a caricare - anche se non lo fanno t dare un errore, e il messaggio 'loading' scompare; è come se stessero caricando con una dimensione di 0B. Quali file funzionano e quali non sembrano del tutto casuali: ho visto ognuno di loro caricare e ognuno di essi ha avuto esito negativo più di una volta.

Come posso caricare correttamente tutti questi file?

+1

Sto avendo questo problema esattamente lo stesso; Ne sono completamente sconcertato. –

+0

Sei riuscito a risolvere questo? Sto affrontando lo stesso identico problema. Anche se ricarico l'audio in caso di stallo, continua a bloccarsi senza interruzioni ancora e ancora. Non pagherà mai più di un paio di secondi. – Kolyunya

+0

Potrebbe essere d'aiuto sapere che Safari sembra richiedere estensioni di file per richieste di media. Il tipo mime corretto (nell'elemento audio e nella risposta) non è sufficiente se carica la risorsa. – pwray

risposta

8

ho avuto un problema simile con i file che non carica e si avvicinò con questa soluzione. Sembra che l'audio/video HTML5 possa "bloccarsi", il che significa che si ferma solo il caricamento. Fortunatamente, c'è un evento di "stallo" che spara quando ciò accade. Quello che ho fatto è stato ascoltare questo evento e quando/se si attiva, prova a forzare nuovamente l'audio a caricare.

Esempio utilizzando 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

In questo contesto '$ (this) [0]' è equivalente a 'this' – incarnate

+0

Qualche idea se funziona anche per soundmanager2? –

0

Guardando sorgente generato della pagina si carica come prima fonte di un file ogg poi un file mp3 in questo ordine esatto

Ma, come specificato nel http://html5doctor.com/native-audio-in-the-browser/ file sono in ordine inverso, in modo da provare a fare lo stesso

altrimenti prova a servire nelle fonti anche un audio AAC in un contenitore m4a/mp4

+0

Grazie per la risposta. Ho invertito l'ordine dei tipi di file e non fa differenza. Proverò ad usare i file m4a, ma non è chiaro perché dovrei farlo, dal momento che Safari supporta teoricamente i file mp3, e alcuni di essi funzionano bene. –