Событие AS3-ID3 в веб-радио - PullRequest
0 голосов
/ 07 мая 2011

Я создаю онлайн-радио плеер, используя код 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 Ответ

1 голос
/ 07 мая 2011

ID3 не существует в таких интернет-радио потоках, как этот. Я предполагаю, что вы говорите о потоке SHOUTcast / IceCast.

Для этого вам нужно реализовать протокол ледяных метаданных. Для Flash это обычно просто внешне.

См. Эту ссылку: http://www.smackfu.com/stuff/programming/shoutcast.html

По сути, вы отправляете icy-metadata: 1 в заголовках вашего запроса GET. Затем сервер вставляет метаданные прямо в середину потока, которую вы извлекаете перед отправкой данных на то, что воспроизводит поток. Я не уверен, возможно ли это даже во Flash, но, безусловно, возможно сделать это на PHP (или на любом другом серверном языке) и заставить приложение Flash сделать запрос к вашему PHP-скрипту для получения этих метаданных. 1009 *

...