Создание веб-радио - PullRequest
       35

Создание веб-радио

11 голосов
/ 25 октября 2010

Я хотел бы разработать пример веб-приложения, которое может отправлять и читать аудио на лету.

Идея заключается в разработке веб-сайта с использованием HTML5 / JS. Итак, административная часть (на php или на любом другом серверном языке) позволит мне отправлять аудио с микрофона.

Затем на стороне клиента пользователь может прослушивать поток, например, с помощью тега <audio>.

Возможно ли это? Кто-нибудь использовал для этого сильное (открытое / бесплатное) решение?

Спасибо,

Привет.

Ответы [ 8 ]

2 голосов
/ 03 ноября 2010

Практически любое решение, которое вы выберете, будет страдать от плохого принятия на том или ином устройстве, а сетевое решение еще хуже (на что все указывают).

Если вы хотите охватить как можно большую аудиторию, настройте потоковый сервер, например Icecast , и транслируйте через MP3 и / или OGG (лучше оба). Практически каждое подключенное к Интернету устройство с разумными возможностями сможет воспроизводить потоковое аудио, поэтому пользователь может выбрать подходящий плеер или его любимый.

1 голос
/ 03 ноября 2010

http://web.psung.name/zeya/ - это приложение транскодирует вашу музыку на лету и транслирует ее с помощью HTML5.Может быть, это поможет немного;)

1 голос
/ 03 ноября 2010

Этот документ на веб-сайте Apple может быть тем, что вы ищете.Он рекомендует использовать HTTP Live Streaming для таких устройств, как iPad, iPhone и iPod Touch: https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.html

Может быть, то, что вы ищете.

1 голос
/ 02 ноября 2010

Я думаю, что то, что вы предлагаете, теоретически выполнимо, но на практике веб-клиенты и стандарты все еще недостаточно развиты. Например, посмотрите этот интересный блог о синтезе звука в JavaScript .

Теперь по теории:

Альтернатива 1: подождите, пока браузеры добавят поддержку формата потокового аудио (обычно аудиотег в настоящее время поддерживает WAV, OGG и / или MP3).

Альтернатива 2: реализовать потоковую передачу самостоятельно ...

Что касается серверной части (функция ввода звука с микрофона), я предполагаю, что вы можете делать практически все, что захотите. Например, должна быть возможность на самом деле не подключать микрофон к серверу, а позволить серверу запустить какой-то процесс транскодера из другого источника / сервера. Тогда у вас может быть приложение CGI / FastCGI, к которому подключаются веб-клиенты для получения последнего окна потока (часть потока, скажем, 1-5 секунд?).

На стороне веб-клиента вы, вероятно, можете использовать звуковой тег и управлять им из JavaScript, чтобы периодически обновлять его новыми окнами потоков. Очередь аудиосэмплов не поддерживается, поэтому вам придется придумать какой-то специальный механизм синхронизации. Одним из решений может быть использование двух одновременных аудиосэмплов, которые постепенно затухают (таким образом сводя к минимуму щелчки и всплески, возникающие из-за неточной синхронизации).

1 голос
/ 02 ноября 2010

Можно было бы манипулировать звуковыми тегами для «потокового» контента, но должен быть буфер на пару секунд (как минимум).Переустановите источник тега в URL, который предоставляет следующие пару секунд каждые пару секунд (конечно, не статические файлы, но динамически передаваемые из потока)Сторона администратора Я думаю, что вы застряли с плагином, так как вам нужен микрофонный доступ.

1 голос
/ 01 ноября 2010

Аудио тег HTML не указывает какой-либо конкретный кодек, поэтому поставщики браузеров могут выбирать свои собственные. В настоящее время никто не поддерживает потоковый формат, хотя это может произойти. Что касается записи, я не уверен, что вы действительно хотите поддерживать неограниченную запись из браузера, потому что у вас есть проблемы с параллелизмом? Вы действительно позволите всем записывать сразу?

Кажется, имеет смысл иметь ограниченный доступ к записи сеанса потокового мультимедиа на сервере, а затем разрешить архивированный доступ к нему через браузер. Поиск можно легко выполнить с помощью тега HTML AUDIO, но по сути мы только что изобрели подкаст.

1 голос
/ 01 ноября 2010

Я не думаю, что вы можете сделать что-то подобное с просто JavaScript и HTML5. И если бы мы могли, нам, скорее всего, пришлось бы долго ждать, прежде чем клиенты смогут использовать его в своем браузере. Как сказал Дэвид, Flash будет работать, проблема в том, что: A) многие устройства не поддерживают его и B) Flash далеко не бесплатен. Есть другие способы сделать то, что вы описали, но они потребуют другого программирования или, по крайней мере, других плагинов. Единственная альтернатива, о которой я могу подумать, - это Silverlight от Microsoft, бесплатный и не слишком сложный в использовании, он имеет поддержку микрофонов, хотя и не уверен, насколько он хорош. Надеюсь, это поможет.

1 голос
/ 31 октября 2010

Существует спецификация для взаимодействия с устройствами , например с микрофонами, но это первые дни, и я не знаю о какой-либо поддержке этого.

Если вам нужно что-то, что может взаимодействовать с микрофоном сегодня, обратитесь к Adobe Flash.

...