Потоки SHOUTcast в основном являются потоками HTTP, но с разбитым заголовком строки состояния. Вместо HTTP/1.1 200 OK
вы получаете ICY 200 OK
. Оттуда вы можете определить формат и кодек из заголовка ответа Content-Type
(например, audio/mpeg
) и потокового воспроизведения по мере поступления данных.
В дополнение к этому в поток перемежаются метаданные. Это необязательно, но может быть запрошено, добавив следующий заголовок к вашему запросу:
Icy-MetaData: 1
Затем в заголовках ответа, вы увидите Icy-MetaInt
, чтобы сказать вам, сколько байт между каждым блоком метаданных. См. Это сообщение для получения дополнительной информации о том, как обрабатывать эти метаданные: https://stackoverflow.com/a/4914538/362536
Ищите спецификации и выясните, какой протокол потоковой передачи он использует и реализует это соответственно. – Chris
Я знаю, как реализовать соединение, мне нужна информация о том, как читать непрерывный поток mp3-данных и воспроизводить его. – MarK