0

我正在使用下面的 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事件从未触发!

有谁知道如何解决这个问题?

4

1 回答 1

1

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

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

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

基本上,您发送icy-metadata: 1GET 请求的标头。然后服务器将元数据插入到流的中间,您在将数据发送到正在播放流的任何设备之前将其取出。我不确定这在 Flash 中是否可行,但肯定可以在 PHP(或任何服务器端语言)中执行此操作,并让您的 Flash 应用程序向您的 PHP 脚本发出请求以获取该元数据。

于 2011-05-07T13:51:33.953 回答