Android - Как получить метаданные из живого аудиопотока / канала интернет-радио, используя URL

В настоящее время я работаю над приложением Android для потоковой передачи музыки / интернет-радио, и я очень признателен, если вы поможете мне в этом. Заранее спасибо!

Я могу играть музыку, но я не знаю, как получить информацию, такую ​​как текущая песня, обложка альбома и т. Д. Это действительно помогло бы моему приложению, если бы я мог получить эту информацию.

У меня вопрос, как я узнаю или где я получу информацию о том, какая песня в настоящее время играет? Как я уже заметил, VLC может сделать это с помощью только ссылки.

Вот скриншот с VLC.

введите описание изображения здесьвведите описание изображения здесь

Вот несколько ссылок, которые я пробовал:

http://tar.stream.dev.al:9078/listen.pls

http://84.46.147.81:80/m1/mp3

http://stream.radioeger.hu:18000/listen.pls

http://95.110.186.253:8020/magic.mp3

2 ответа

Вы можете получить аудио метаданные через MediaMetadataRetriever, но MediaMetadataRetriever не работает с URL-адресами в определенных версиях Android. Итак, используйте https://github.com/wseemann/FFmpegMediaMetadataRetriever в качестве обходного пути, я предлагаю попробовать его.

Большинство радиопотоков используют потоковую передачу http. Сжатые аудиоданные обычно чередуются с метаданными. Поэтому вам понадобится способ обрабатывать поток http в режиме реального времени, извлекая любые метаданные. Для Shoutcast метаданные являются частью протокола, вот пример из Streamripper:

http://streamripper.cvs.sourceforge.net/viewvc/streamripper/streamripper/ripper.c?revision=1.1.1.1&view=markup

Для классической потоковой передачи по протоколу HTTP протокол не включает метаданные, но включает контейнер. В этом случае вы также должны элементарно декодировать контейнер. Опять же, вот пример из Streamripper. Этот использует libvorbis для проверки контейнера и получения метаданных. Тем не менее, чтобы сделать все правильно, нужно сделать несколько магических трюков:

http://streamripper.cvs.sourceforge.net/viewvc/streamripper/sripper_1x/lib/ripogg.c?revision=1.22&view=markup

НТН

Другие вопросы по тегам