A
AHTUNG
Прохожие
- Автор темы
- #1
Вот что начитал про вынос метаданных из потока аудио сабж...
Итак, процедура выделения метаданных (названия песни) из потока выглядит так:
1.
Запрос метаданных
Это просто добавление нового поля в HTTP-запрос:
Icy-MetaData:1
То есть, весь запрос будет выглядеть так:
GET path HTTP/1.0
Icy-MetaData:1
Если будут запрашиваться метаданые, нужно уметь извлекать их из потока, иначе звуковой поток будет прерываться каждую секунду (хотя это хороший способ узнать, получаем ли мы метаданные вообще
.
2.
Получение интервала метаданных
Один из заголовков, которые вернутся на ваш запрос, будет сообщать о том, как часто метаданные будут посылаться в потоке. В частности, сколько байт MP3-данных будет между блоками метаданных. Этот заголовок выглядит так:
icy-metaint: number
Возможно, нужно будет хранить это число.
3.
Получение данных
Считываем поток данных и считаем байты. Когда число байт стало равно number, мы дошли до блока метаданных. Первая часть блока – это указатель длины. Как уже говорилось, он равен (длина метаданных / 16). Умножаем его на 16, чтобы получить длину метаданных (максимальная длина метаданных = 4080). Теперь считываем это количество байт – и мы имеем строку, содержащую метаданные. Обнуляем счетчик данных и повторяем все заново.
Следует заметить, что чаще всего длина метаданных равна 0, то есть их просто нет в потоке. Метаданные, как правило, посылаются в двух местах: сразу после соединения и когда сменяются песни.
4.
Разбор метаданных
Часть строки метаданных должна выглядеть так:
StreamTitle='title of the song';
что нам и нужно было.
Вопрос заключаеться как это сделать в html-e чёб на странице при запросе появлялось название песни транслируемой в онлайне.. а лучше еси будет ява с запросом по времени..
Подскажате может кто сталкивалси с таким!
Сенкс зараннеееее..

Итак, процедура выделения метаданных (названия песни) из потока выглядит так:
1.
Запрос метаданных
Это просто добавление нового поля в HTTP-запрос:
Icy-MetaData:1
То есть, весь запрос будет выглядеть так:
GET path HTTP/1.0
Icy-MetaData:1
Если будут запрашиваться метаданые, нужно уметь извлекать их из потока, иначе звуковой поток будет прерываться каждую секунду (хотя это хороший способ узнать, получаем ли мы метаданные вообще

2.
Получение интервала метаданных
Один из заголовков, которые вернутся на ваш запрос, будет сообщать о том, как часто метаданные будут посылаться в потоке. В частности, сколько байт MP3-данных будет между блоками метаданных. Этот заголовок выглядит так:
icy-metaint: number
Возможно, нужно будет хранить это число.
3.
Получение данных
Считываем поток данных и считаем байты. Когда число байт стало равно number, мы дошли до блока метаданных. Первая часть блока – это указатель длины. Как уже говорилось, он равен (длина метаданных / 16). Умножаем его на 16, чтобы получить длину метаданных (максимальная длина метаданных = 4080). Теперь считываем это количество байт – и мы имеем строку, содержащую метаданные. Обнуляем счетчик данных и повторяем все заново.
Следует заметить, что чаще всего длина метаданных равна 0, то есть их просто нет в потоке. Метаданные, как правило, посылаются в двух местах: сразу после соединения и когда сменяются песни.
4.
Разбор метаданных
Часть строки метаданных должна выглядеть так:
StreamTitle='title of the song';
что нам и нужно было.
Вопрос заключаеться как это сделать в html-e чёб на странице при запросе появлялось название песни транслируемой в онлайне.. а лучше еси будет ява с запросом по времени..
Подскажате может кто сталкивалси с таким!
Сенкс зараннеееее..

