Раньше некоторые говорили об этом вокруг stackoverflow, но ничего не ответил на этот вопрос из того, что я видел.
Я пытаюсь реализовать потоковое аудио веб-приложение. Почти идентичен тому, что WFMU сделал со своим игроком ( http://wfmu.org/html5/player.php ).
Все, что мне удалось выяснить из их потока, это то, что они транслируют поток в PHP, не знают, в каком формате, а затем передают это jPlayer для презентации HTML5 клиенту.
У них это работает потрясающе, но я просто не уверен, как они кормят аудио в PHP и что они делают в своем PHP, чтобы представить его в приемлемом формате для HTML5.
Любые идеи очень приветствуются.
Похоже, скрипт PHP просто выдает звуковой файл ( http://blogfiles.wfmu.org/DG/stream3.php ).
Нет необходимости использовать PHP. Для клиента все, что имеет значение, – это отправка соответствующего типа контента и фактического содержимого. В этом случае аудио / mpeg (MP3) или OGG для Firefox (который сейчас не работает для них, но это определенно может).
Я подозреваю, что они используют PHP для ретрансляции потока, заключается в том, что они используют SHOUTcast в качестве потокового сервера. Делая кое-что, я нашел это: http://mp3stream.wfmu.org:8000/
Обратите внимание: когда вы нажимаете этот URL-адрес в своем браузере, вы получаете основную информационную страницу. Однако, если вы нажмете это на аудиоплеер, вы получите поток. Сервер SHOUTcast решает это на основе строки User-Agent. Если он содержит «Mozilla» в любом месте User-Agent, он возвращает эту страницу. Если это не так, то возвращает поток. Таким образом, для аудиоплеер HTML5 он будет использовать User-Agent браузера (который содержит Mozilla) и не сможет получить доступ к потоку. Я подозреваю, что их скрипт PHP – вот что касается проблемы.
PHP-скрипт будет использовать cURL, подключиться к потоковому серверу со своим собственным User-Agent (может быть что угодно, если это не «Mozilla»), и передать кусок блоком в браузер, который попадает в скрипт PHP. Кусок кедрового пирога.