2010-11-17 26 views
5

yüklemek için başarısız [DÜZENLEME: Javascript olmadan basitleştirilmiş test sayfası kullanılarak vs.] Dört ses dosyaları içeren bir web sayfası varHTML5 Ses dosyaları Safari

. Bu dosyalar, Safari'de oynaması gereken .mp3 dosyalarıyla birlikte HTML5 <audio> olarak sunulur. (Firefox ve Chrome'da .ogg dosyaları ile sorun yaşamadım.)

Sayfa her yeniden yüklediğimde, bir ve üç dosya arasında düzgün bir şekilde yükleme yapılıyor ve geri kalanı yüklenmiyor - Bir hata verin ve 'yükleme' mesajı kaybolur; 0B büyüklüğünde yükleniyorlarmış gibi. Hangi dosyalar çalışır ve tamamen rasgele görünmez: Her birinin yükünü gördüm ve her biri bir kereden fazla başarısız oluyor.

Tüm bu dosyaların düzgün yüklenmesini nasıl sağlayabilirim? Bu kesin sipariş

ilk kaynak olarak daha sonra bir dosya ogg bir mp3 dosyası yüklemek Ama http://html5doctor.com/native-audio-in-the-browser/ dosyasında belirtildiği gibi ters sırayla, yani aynısını yapmaya çalışacağım sayfanızın oluşturulan kaynağında baktığımızda

+1

; Tamamen şaşkınım. –

+0

Bunu çözebildiniz mi? Aynı konuyla yüzleşiyorum. Sesi durduran olayı yeniden yüklesem bile, tekrar tekrar durmadan durur. Asla birkaç saniyeden fazla ödeme yapmaz. – Kolyunya

+0

Safari'nin medya istekleri için dosya uzantıları gerektirdiğini bilmek yardımcı olabilir. Doğru mime türü (ses öğesinde ve yanıtta) kaynağı yüklemesi yeterli değildir. – pwray

cevap

8

Ben dosyaları yükleme ve bu çözüm geldi değil buna benzer bir durumla başlamıştı postanızda kaynaklarda bir aac ses sunmaya çalışıyoruz. Görünüşe göre, HTML5 ses/videosu "durdurabiliyor", yani sadece yükleme durur. Neyse ki, bu olduğunda ortaya çıkan bir "durak" olay var. Yaptığım şey bu olayı dinlemekti ve ne zaman ateş ederse sesi tekrar yüklemeye zorlamaya çalışın. jQuery kullanarak

Örnek

: Bu tam aynı sorunu yaşıyorum

// 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

Bu bağlamda '$ (this) [0]' 'this 'ile eşdeğerdir – incarnate

+0

Bu, ayrıca soundmanager2 için de işe yarar mı? –

0

aksi bir m4a/mp4 konteyner

+0

Cevabınız için teşekkür ederiz. Dosya türlerinin sırasını tersine çevirdim ve fark yaratmıyor. m4a dosyalarını kullanmaya çalışacağım, ancak Safari neden mp3 dosyalarını desteklediğinden ve bazılarının iyi çalıştığından, neden zorunda olduğum açık değil. –