Ответ 1
http://web.psung.name/zeya/ - это приложение транскодирует вашу музыку "на лету" и передает ее с помощью HTML5. Может быть, это поможет немного;)
Я хотел бы разработать приложение для веб-образцов, которое может отправлять и читать аудио на лету.
Идея заключается в разработке веб-сайта с HTML5/JS. Итак, часть администратора (на php или любом другом языке на стороне сервера) позволит мне отправлять аудио от микрофона.
Затем, на стороне клиента, пользователь может прослушивать поток с тегом <audio>
, например.
Возможно ли это? Кто-нибудь использовал сильное (открытое/бесплатное) решение, выполняющее это?
Спасибо,
С уважением.
http://web.psung.name/zeya/ - это приложение транскодирует вашу музыку "на лету" и передает ее с помощью HTML5. Может быть, это поможет немного;)
Практически любое решение, которое вы выберете, будет страдать от плохого принятия на том или ином устройстве, а веб-решение еще хуже (как широко подчеркивается всеми).
Если вы хотите охватить самую большую аудиторию, настройте потоковый сервер, например Icecast и передайте через MP3 и/или OGG ( оба лучше). Практически все подключенные к Интернету устройства с разумными возможностями смогут воспроизводить потоковое аудио, поэтому пусть пользователь выбирает подходящий плеер или его любимый.
Существует спецификация взаимодействия с устройствами, например, микрофоны, но это ранние дни, и я не знаю никакой поддержки для он.
Если вы хотите что-то, что может взаимодействовать с микрофоном сегодня, посмотрите на Adobe Flash.
Я не думаю, что вы можете сделать что-то подобное с помощью JavaScript и HTML5. И если бы мы могли, нам, скорее всего, пришлось бы долго ждать, прежде чем клиенты смогут использовать его в браузере. Как сказал Дэвид, Flash будет работать, проблема в том, что: A) многие устройства не поддерживают его, а B) Flash далек от свободного. Существуют и другие способы сделать то, что вы описали, но для этого потребуется другое программирование или, по крайней мере, другие плагины. Единственная альтернатива, которую я могу придумать, - это Silverlight от Microsoft, свободный и не слишком сложный в использовании, у нее есть поддержка микрофона, но не уверен, насколько это здорово. Надеюсь, это поможет.
В аудиокодете HTML не указывается какой-либо конкретный кодек, поэтому разработчики браузера могут выбирать самостоятельно. В настоящее время ни один из них не поддерживает потоковый формат, хотя это может произойти. Что касается записи, я не уверен, что вы действительно хотите поддерживать неограниченную запись в браузере, потому что у вас есть проблемы concurrency? Вы действительно позволили бы всем записывать сразу?
Кажется, имеет смысл иметь ограниченный доступ к записи сеанса потокового мультимедиа на сервере, а затем разрешить архивный доступ к нему через браузер. Поиск можно легко выполнить с помощью тега HTML AUDIO, но по существу мы только что изобрели подкаст.
Можно было бы манипулировать звуковыми тегами для "потокового" контента, но должен быть буфер в пару секунд (по крайней мере). Переустановите источник тега на URL-адрес, который обеспечивает следующие пару секунд каждые пару секунд (а не статические файлы, конечно, но динамически подается из потока). Администратор я думаю, что вы застряли с плагином, так как вам нужен доступ к микрофону.
Я думаю, что то, что вы предлагаете, выполнимо теоретически, но на практике веб-клиенты и стандарты пока еще недостаточно зрелы. Например, просмотрите этот интересный блог о синтезе аудио в JavaScript.
Теперь для теории:
Альтернатива 1: Подождите, пока браузеры будут поддерживать поддержку потокового аудиоформата (обычно звуковой тег в настоящее время поддерживает WAV, OGG и/или MP3).
Альтернатива 2: Реализация потоковой передачи...
Для серверной части ( "микрофон" ), я предполагаю, что вы можете делать все, что захотите. Например, должно быть возможно не подключать микрофон к серверу, а скорее позволить серверу запускать какой-то процесс транскодера с другого источника/сервера. Затем у вас может быть приложение CGI/FastCGI, к которому подключаются веб-клиенты, чтобы получить последнее окно потока (часть потока, скажем, 1-5 секунд?).
На стороне веб-клиента вы, вероятно, можете использовать звуковой тег и управлять им с помощью JavaScript, чтобы периодически обновлять его новыми потоковыми окнами. Очередь аудиопоследовательностей не поддерживается, поэтому вам придется придумать какой-то механизм пользовательской синхронизации. Одним из решений может быть использование двух одновременных образцов звука, которые пересекаются (таким образом минимизируя клики и зависания, возникающие в результате неточного времени).
Этот документ на сайте Apple может быть тем, что вы ищете. Он рекомендует использовать HTTP Live Streaming для таких устройств, как iPad, iPhone и iPod Touch: https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.html
Может быть, что вы после.