网络广播中的 AS3-ID3 事件
Posted
技术标签:
【中文标题】网络广播中的 AS3-ID3 事件【英文标题】:AS3-ID3 event in a web radio 【发布时间】:2011-08-20 16:27:02 【问题描述】:我正在使用下面的 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
基本上,您在 GET 请求的标头中发送 icy-metadata: 1
。然后,服务器将元数据插入到流的中间,您在将数据发送到正在播放流的任何设备之前将其取出。我不确定这在 Flash 中是否可行,但肯定可以在 php(或任何服务器端语言)中执行此操作,并让您的 Flash 应用程序向您的 PHP 脚本发出请求以获取该元数据。
【讨论】:
以上是关于网络广播中的 AS3-ID3 事件的主要内容,如果未能解决你的问题,请参考以下文章