#actionscript-3 #stream #audio #audio-streaming #radio
#actionscript-3 #Аудио #потоковое аудио #интернет-радио
Вопрос:
Я создаю онлайн-проигрыватель радио, используя приведенный ниже код AS3:
private var soundChannel:SoundChannel;
private var stationUrl:String = "h t t p : / /205.188.215.230:8002/";
sound = new Sound();
sound.addEventListener(Event.ID3, onID3Change);
sound.load(new URLRequest(stationUrl));
soundChannel = sound.play();
private function onID3Change(e:Event):void
{
....
}
звук воспроизводится успешно, но проблема в том, что событие ID3 никогда не запускается!
Кто-нибудь знает, как это решить?
Ответ №1:
ID3 не существует в потоках интернет-радио, подобных этому. Я предполагаю, что вы говорите о потоке SHOUTcast / IceCast.
Для этого вам необходимо реализовать протокол метаданных icy. Для Flash это обычно просто выполняется извне.
Смотрите эту ссылку:http://www.smackfu.com/stuff/programming/shoutcast.html
По сути, вы отправляете icy-metadata: 1
в заголовках вашего запроса GET. Затем сервер вставляет метаданные прямо в середину потока, которые вы извлекаете перед отправкой данных на то, что воспроизводит поток. Я не уверен, возможно ли это вообще во Flash, но, безусловно, это возможно сделать на PHP (или на любом другом серверном языке) и заставить ваше Flash-приложение сделать запрос к вашему PHP-скрипту, чтобы получить эти метаданные.