XMLHttpRequest ile bir aralık isteği gönderebilirsiniz! ve server 'Accept-Range: Bytes' ise, window.URL.createObjectURL dosyasında bir blob dosyası alın. Video etiketi size birçok etkinlik ve özellik sunar, böylece arabelleğin ne olduğunu ve nerede olduğunuzu her zaman bilirsiniz. Kullanıcı ilerleme çubuğunu tıklatsa da, duraklat veya durdur düğmesi. Video özellikleri bayt aralığına göre zamana dayalı olduğundan, video meta verileri adı verilen video dosyasından bazı ek bilgilere ihtiyacınız vardır. Dosya arama konum oranına bir xml dosyası almak ve meta verisini bir .flv için başlangıçta ayarlamak için Yamdi ile oynadım.
Sunucu tarafında aralık üstbilgisini (bayt = sayı1 - sayı2 ...) okuyun, video dosyasını açın, numara1, yazdır (sayı2-sayı1 + 1) bayt arayın ve belirli bazı üstbilgileri gönderin: Content-Type, Content-Disposition, HTTP/1.1 206 Kısmi İçerik, İçerik Aralığı.
Arama pozisyonunu takip etmelisiniz. Uzunluk size kalmış.
Çoğu mevcut tarayıcı uygulamasının bu konuda oldukça akıllı olduğunu düşünüyorum. Video etiketi ilk çıktığında, bir etiketin tüm dosyayı olabildiğince hızlı indirmeye çalışacağını hatırlıyorum. Daha yeni versiyonlar sadece birkaç saniyelik ön tampon gibi görünüyor. Tüm dosyayı sayfa yüklemesinde indirmeye çalışan bir tarayıcı görüyor musunuz? –
Sorun, videoyu duraklattığınız zamandır. Daha sonra, tarayıcılar dosyayı olabildiğince hızlı indirmeye başlayacaktır. – Hese
Tarayıcı, oynatmanın gerektirdiği kadar önceliğe sahip olduğunda bağlantıyı otomatik olarak sıfırlamalı (aktarımı iptal etmeli) ve daha sonra ihtiyaç duyulduğunda ve son bayttan başlayarak daha fazla talepte bulunmalıdır. Daha. – mark4o