Подтвердить что ты не робот

MEDIA_ERR_SRC_NOT_SUPPORTED html5 аудио-беды

Я работаю над аудиопроигрывателем html5, и все работает нормально, когда я сервер .ogg файла с того же хоста, что и html-страница. Когда я помещаю файл ogg в свой cdn, он терпит неудачу, а код ошибки - MEDIA_ERR_SRC_NOT_SUPPORTED

Например, это работает отлично

<audio src="/song.ogg" id="player">
  Your browser does not support the <code>audio</code> element.
</audio>

Но это не удается с приведенным выше кодом ошибки

<audio src="http://mycdn.com/song.ogg" id="player">
  Your browser does not support the <code>audio</code> element.
</audio>

Заголовки для звукового файла, который не работает, выглядят примерно так (это из другого файла ogg, который демонстрирует то же поведение)

HTTP/1.1 200 OK
Server: CacheFlyServe v26b
Date: Sat, 13 Feb 2010 21:10:48 GMT
Content-Type: application/octet-stream
Connection: close
ETag: "c6ee7d86e808cc44bbd74a8db94a5aae"
X-CF1: fA.syd1:cf:cacheD.syd1-01
Content-Length: 2398477
Last-Modified: Sat, 13 Feb 2010 20:50:56 GMT
Accept-Ranges: bytes
X-Cache: MISS from deliveryD-syd1
4b9b3361

Ответ 1

Заголовок Content-Type = octet/stream является проблемой, хотя, если я правильно читаю спецификацию, этого не должно быть. Здесь тестовый файл: http://mozilla.doslash.org/stuff/video-test/video.html

I зарегистрировал ошибку в Mozilla bugzilla об этом. [edit] ответ:

Мы не используем ни одного контента, чтобы понять, что представляет собой контент - мы полагаемся на установлен правильный тип мим. Вот почему приложение/октет-поток не играем и возвращаем путь "" для canPlayType.

Ответ 2

Проблема заключается в типе mime, с которым вы обслуживаете аудиофайл. Для того, чтобы играть в нее, для этого нужно быть "audio/ogg", "application/ogg" или "video/ogg". Firefox не делает какой-либо формы "обнюхивания контента", чтобы определить, в каком формате находится файл. Он полностью опирается на тип mime.