2012-04-06 14 views
23

Mam problem z tym od jakiegoś czasu, więc pomyślałem, że poproszę o pomoc.Jak zabezpieczyć Chrome przed pobieraniem ostatnich 128 bajtów pliku MP3

Dla projektu sprawdzającego koncepcję, stworzyłem HTML 5 only last.fm player przy użyciu jPlayer. Działa dobrze z Firefoksem, ale nie gra z użyciem rozwiązania html podczas korzystania z Chrome (Chromium).

Najpierw Chrome próbuje pobrać plik mp3 za pomocą adresu URL strumienia. Po wstępnym buforowaniu,zawsze stara się odczytać ostatnie 128 bajtów, wykonując kolejne żądanie HTTP. Problem polega na tym, że serwery strumieniowe last.fm wydają się zezwalać tylko na jedno połączenie na plik na raz, co powoduje, że oba połączenia HTTP się nie udają. Wygląda na to, że Chrome/Chrom ignoruje właściwość preload = "none" tagu audio. O ile mogę się dowiedzieć, tag jest tylko zaleceniem dla przeglądarki.

Normalne pliki mp3 działają jak urok. Ponadto, po wprowadzeniu przekierowanego URL-a strumieniowego w przeglądarce, rozpoczyna się odtwarzanie. Wygląda na to, że last.fm używa oryginalnych adresów URL jako rodzaj jednorazowego tokenu dostępu/filtra kontroli dostępu, podczas gdy rozwiązany adres URL strumienia jest ważny przez pewien czas.

Aby uzyskać pełne nagłówki HTTP (pliki cookie ocenzurowane), zobacz http://pastebin.com/rBAdL4X8. (Skopiowano z inspektora elementów chromu).

Czy istnieje sposób na obejście tego problemu z poziomu przeglądarki?

+0

Nie jestem pewien. Może przeglądanie kodu tego projektu da ci kilka odpowiedzi ... http://code.google.com/p/thelastripper/ – MonkeyWrench

+3

Znalazłem [ten raport o błędzie] (http://code.google.com/p/ chromium/issues/detail? id = 94285). Spójrz – neoascetic

+0

Dzięki, @neoascetic :) – user3001

Odpowiedz

4

Wydaje się, że nie ma obecnie obejścia, ale z komentarza 11 na temat raportu o błędzie wskazanego przez neoascetę można się z nim zapoznać w następnej wersji Chrome - M20.

+0

Hm oznacza to, że musiałbym wykryć, czy użytkownik używa przeglądarki Chrome> = M20 po naprawieniu błędu. Brzydki ... – user3001

+1

Błąd został naprawiony, ale nadal nie działa – user3001

Powiązane problemy