#javascript #audio #audio-streaming #audiotrack #internet-radio
#javascript #Аудио #потоковое аудио #audiotrack #интернет-радио
Вопрос:
Я хочу воспроизводить аудиопотоки с <audio>
тегом и отображать название текущей дорожки. С этой целью я использовал свойство AudioTracks для audio.
Я знаю, что эта функция является экспериментальной, и я приложил все усилия, чтобы включить ее.
В Epiphany (Gnome Web ) эта функция работает безупречно (даже без необходимости ее предварительного включения), но в Chrome и Firefox свойство label AudioTrack всегда пустое.
Нарушена ли реализация Chrome и Firefox? Есть ли какой-нибудь другой API, который я могу использовать для получения названия трека?
Как я ее извлекаю:
document.getElementById('audio').audioTracks[0].label;
Комментарии:
1. Не у всех дорожек будет метка. Какой тип потока вы используете, в котором это включено?
2. @Brad интернет-радио. Я знаю, что не у всех из них будут метки, но Chrome показывает пустые метки в тех, которые, как я знаю, есть.
3. Что это за интернет-радио? Я не знаю ни одной интернет-радиостанции, у которой есть несколько дорожек. Это скорее поток по запросу, где будет основной трек, трек с комментариями, возможно, на другом языке и так далее. У вас есть пример потока, который вы используете?
4. Вы случайно не путаете трек, с точки зрения потока и контейнера, и трек, как в песне, и его метаданные, которые воспроизводятся в данный момент?
5. Получение информации из потока не должно занимать 4 секунды. Метаданные должны быть доступны в первом фрагменте метаданных ICY, который обычно доступен после 8 КБ данных, что должно быть в пределах начального размера буфера. Другими словами, вам не понадобится больше одного или двух пакетов.
Ответ №1:
Я наткнулся на эту библиотеку от Eshaz, показывающую, что можно извлекать метаданные непосредственно из браузера. Но, к сожалению, политики CORS должны быть правильно настроены для работы.
Как отметил Брэд, лучшим вариантом является извлечение информации со стороны сервера.
Здесь мы надеемся, что функция AudioTrack станет основной в ближайшем будущем. Спасибо @Brad за всю помощь.
Комментарии:
1. Теперь вопрос заключается в оптимизации запросов ajax. С этой целью я планирую использовать Audio API, чтобы помочь мне определить, когда заканчивается песня и начинается другая.