Извлечение имени звуковой дорожки из потока

#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, чтобы помочь мне определить, когда заканчивается песня и начинается другая.