Как работают встроенные в браузер аудиоплееры?

Я занимаюсь программированием на Javascript в течение некоторого времени, но это всегда было связано с обновлением данных, сохранением, манипулированием и т. д.

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

Как это происходит в Javascript?

Например, как веб-сайт передает живое аудио на мои динамики с помощью Javascript? http://player.streamtheworld.com/liveplayer.php?callsign=WVIEAM


person CodyBugstein    schedule 11.03.2016    source источник
comment
Вы говорите о потоковой передаче звука в реальном времени или просто воспроизводите любой аудиофайл?   -  person Anant Dabhi    schedule 11.03.2016
comment
В частности, потоковое аудио в реальном времени   -  person CodyBugstein    schedule 11.03.2016


Ответы (1)


Живой звук не сильно отличается от предварительно записанного звука... он просто воспроизводится в том виде, в котором он был получен, а в прямом эфире он кодируется так же, как и записан.

В наши дни в браузерах самой простой формой потокового аудио является простой тег <audio>. Изменив атрибут src с файла на поток, вы готовы к работе:

<audio src="http://cdn.audiopump.co/waug/main_mp3_256k" />

Браузер в этом случае не знает и не заботится о том, что аудио является прямой трансляцией. Все, что он знает, это то, что есть некоторые медиаданные, которые он извлекает через HTTP и воспроизводит во время их поступления.

Если ваш браузер хорошо совместим, предпочтительно использовать MediaSource API, предоставляя вам больший контроль (например, переключение на поток другого качества в середине потока, как в HLS) и убедиться, что браузер не пытается кэшировать то, что фактически является файлом бесконечного размера.

Например, как веб-сайт передает живое аудио на мои динамики с помощью Javascript? http://player.streamtheworld.com/liveplayer.php?callsign=WVIEAM

Этот конкретный сайт находится в ведении Triton Digital, и они все еще используют Flash. Многие сайты до сих пор делают это как пережиток того времени, когда аудио в формате HTML5 не было широко распространено. Сегодня мало причин для этого.

Другими причинами использования Flash являются несовместимые серверные протоколы. Если ваш сервер потоковой передачи использует RTMP, вы застряли с Flash, поскольку браузеры не поддерживают RTMP.

Раньше возникала проблема с потоковой передачей AAC в браузере из-за того, что браузеры неправильно обрабатывали AAC, заключенный в ADTS. (Эта инкапсуляция требуется для потоковой передачи AAC в большинстве ситуаций.) Большинство браузеров решили эту проблему, но я подозреваю, что именно по этой причине Triton Digital все еще использует свое решение Flash. Используя Flash, они могут воспроизводить потоки AAC/ADTS.

person Brad    schedule 12.03.2016