网络电台中的AS3-ID3事件

时间:2011-05-07 09:33:42

标签: actionscript-3 stream audio audio-streaming radio

我正在使用以下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 个答案:

答案 0 :(得分:1)

像这样的互联网广播流中不存在ID3。我假设您正在谈论SHOUTcast / IceCast流。

为此,您需要实现icy元数据协议。对于Flash,这通常只在外部完成。

请参阅此参考:http://www.smackfu.com/stuff/programming/shoutcast.html

基本上,您在GET请求的标头中发送icy-metadata: 1。然后,服务器将元数据直接插入到流的中间,在将数据发送到播放流的任何内容之前将其拉出。我不确定这在Flash中是否可行,但它确实可以在PHP(或任何服务器端语言)中实现,并让您的Flash应用程序向您的PHP脚本请求获取该元数据。< / p>