Możesz wysłać zapytanie o zakres przy pomocy XMLHttpRequest! i pobierz plik blob na window.URL.createObjectURL, jeśli serwer "Accept-Range: Bytes". Tag wideo zapewnia wiele zdarzeń i właściwości, dzięki czemu zawsze wiesz, co jest zbuforowane i gdzie się znajdujesz. Mimo że użytkownik kliknął przycisk postępu, wstrzymaj lub zatrzymaj. Ponieważ właściwości wideo są oparte na czasie w porównaniu do zakresu bajtów, potrzebne są dodatkowe informacje z pliku wideo o nazwie metadane wideo. Grałem z Yamdi, aby uzyskać plik xml odtwarzanego czasu do współczynnika szukania poszukiwanie pliku i ustawić metadane na początku dla .flv.
Po stronie serwera odczytaj nagłówek zakresu (bajty = numer1-numer2 ...), otwórz plik wideo, wyszukaj numer 1, wydrukuj (numer2-liczba1 + 1) bajty i wyślij kilka konkretnych nagłówków: Content-Type, Content-Disposition, HTTP/1.1 206 Częściowa zawartość, zakres treści.
Powinieneś podążać za pozycją szukania. Długość zależy od Ciebie.
Myślę, że większość obecnych wersji przeglądarek jest dość inteligentna. Kiedy tag wideo pojawił się po raz pierwszy, pamiętam, że tag próbowałby pobrać cały plik tak szybko, jak to możliwe. Nowsze wersje wydają się tylko buforować kilka sekund. Czy widzisz przeglądarkę, która próbuje pobrać cały plik po wczytaniu strony? –
Problem występuje po wstrzymaniu wideo. Następnie przeglądarki zaczną pobierać plik tak szybko, jak to możliwe – Hese
Przeglądarka powinna automatycznie zresetować połączenie (przerywając przesyłanie), gdy jest wystarczająco daleko przed tym, czego wymaga odtwarzanie, a następnie zażądać więcej rozpoczęcia od ostatniego odebranego bajtu, jeśli i kiedy zajdzie taka potrzeba jeszcze. – mark4o