Ответ 1
Поддержка Adobe Flash Player для Shoutcast сломалась дважды (см. здесь и здесь) в прошлом году, поэтому для меня это действительно важная проблема.
Я решил исследовать.
Вместо использования стандартного HTTP, Shoutcast использует протокол ICY, который примерно такой же, как HTTP/1.0.
Строка состояния, отправляемая Shoutcast,
ICY 200 OK
но Mozilla не понимает часть ICY этой строки состояния, поэтому предполагает, что ответ HTTP/0.9 (у которого нет содержимого/заголовка). Результатом этого является то, что тело потока включает в себя строку состояния и заголовки ICY (т.е. Заголовки не обрабатываются Mozilla). Поскольку нет типа контента, Mozilla делает немного "медиа-нюхание" и обнаруживает действительные MP3-кадры с небольшим смещением в контенте, а тег <audio>
работает правильно, используя этот принюхнутый тип содержимого.
Теперь идет проблема, которая исправляется, заставляя все содержимое HTTP/0.9 переходить на нестандартные порты (т.е. не-порт 80/443) к типу контента text/plain
. Теперь, когда тело контента передается тегу HTML <audio>
, он уже имеет тип содержимого text/plain
, поэтому он больше не нюхается, как это было до этой проблемы, и вместо этого Mozilla не разрешает воспроизводиться.
Хорошей новостью является то, что Я исправил это раздражение, и теперь Mozilla рассматривает протокол ICY как эквивалентный HTTP/1.0. Это, в свою очередь, означает, что Mozilla может декодировать заголовки и читать правильный тип контента audio/mpeg
, и воспроизведение восстанавливается.
Мое исправление должно найти свой путь в Mozilla24 в конце этого года.
В то же время, если вы хотите играть в Shoutcast в Mozilla, вам нужно будет транслировать по порту 80.