Я пишу приложение для радиостанции в Германии и хочу получить информацию о заголовке аудиопотока с их сервера Icecast. Как получить аудиопоток во Flutter / Dart и отфильтровать метаданные аудио для отображения названия песни?
Я уже получил код для получения номера icy-metaint
, необходимого для подсчета байтов (аудиоданные mp3) до байта, показывающего, какова длина строки метаданных. (В моем случае это 16000)
Мой код для получения целого числа icy-metaint
:
Future<Map> getInfoDataFromIceCastStream(String url) async {
var request = http.Request('GET', Uri.parse(url));
request.headers['Icy-MetaData'] = '1';
var response = await request.send();
var headers = response.headers;
return headers;
}
Future<int> getIcyMetaInt(String url) async {
Map metaData = await getInfoDataFromIceCastStream(url);
print(metaData['icy-metaint']);
return int.parse(metaData['icy-metaint']);
}
В конце я ожидаю получить строку вроде: StreamTitle='Gong 96.3 - Mark Forster - Chöre';StreamUrl='';