2012-04-06 3 views
23

У меня возникла проблема с этим некоторое время, поэтому я подумал, что попрошу вас о помощи.Как предотвратить Хранение последних 128 байт файла MP3

Для доказательства проекта концепции я создал HTML 5 only last.fm player, используя jPlayer. Он отлично работает с Firefox, но не работает с использованием html-решения при использовании Chrome (Chromium).

Во-первых, Chrome пытается получить mp3-файл через URL-адрес потока. После того, как он предварительно запрограммировал бит, он всегда пытается прочитать последние 128 байт, выполнив другой запрос HTTP. Проблема в том, что потоковые серверы last.fm кажутся только одним подключением к файлу за раз, что приводит к сбою обоих HTTP-соединений. Кажется, Chrome/Chromium игнорирует свойство preload = "none" звуковой метки. Насколько я могу узнать, тег является лишь рекомендацией для браузера.

Нормальные mp3-файлы работают как шарм. Кроме того, при вводе перенаправленного URL-адреса в браузере он начинает воспроизводиться. Похоже, last.fm использует исходные URL-адреса как одноразовый фильтр доступа к токенам/контролю доступа, тогда как разрешенный URL-адрес канала действителен некоторое время.

Для получения всех HTTP-заголовков (печенье с цензурой) см. http://pastebin.com/rBAdL4X8. (Скопировано из инспектора хромовых элементов).

Есть ли способ обойти эту проблему изнутри браузера?

+0

Не уверен. Возможно, просмотр кода этого проекта даст вам несколько ответов ... http://code.google.com/p/thelastripper/ – MonkeyWrench

+3

Я нашел [этот отчет об ошибке] (http://code.google.com/p/ хром/вопросы/детали? ID = 94285). Взгляните – neoascetic

+0

Спасибо, @neoascetic :) – user3001

ответ

4

В настоящее время не существует текущего обходного пути, но из комментария 11 в отчете об ошибке, на который указывает neoascetic, он может быть рассмотрен в следующей версии Chrome - M20.

+0

Hm это означает, что мне нужно будет определить, использует ли пользователь Chrome Browser> = M20 после исправления ошибки. Ужасно ... – user3001

+1

Исправлена ​​ошибка, но она по-прежнему не работает – user3001