Событие AS3-ID3 в веб-радио

#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-скрипту, чтобы получить эти метаданные.