我正在努力寻找有关各种cdn使用的FCSubscribe
方法的任何信息。我需要在一个自定义视频播放器实现的方法。
我想要这些方法的官方规范,但即使是SO搜索"FCSubscribe"也只产生2个结果。我设法在网上找到了一些代码片段,但没有什么具体的。
在阅读了所有这些代码片段后,我已经设法构建了一个工作播放器,但由于缺乏任何文档,我不确定它的健壮性。
下面是到目前为止我的代码的基本大纲:
public function connectCDN() :void
{
netConnection.client = {
onFCSubscribe : onFCSubscribe
};
netConnection.call('FCSubscribe', null, streamName);
netStream.play(streamName);
}
public function onFCSubscribe(...args) :void
{
//Don't know what to do here???
}
其实没什么大不了的。
我特别关心的是:
我应该在呼叫
FCSubscribe
后直接开始播放NetStream
,还是等待回调?我已经实现了
onFCSubscribe
回调,但我不知道我应该在这里做什么。Args包含一个类似info.code
的结构(类似于NetStatusEvent
)。在其他实现中,我见过
onFCUnsubscribe
回调,我也应该实现这个吗?对什么?
对于那些希望添加onFCSubscribe
支持的人,这里有几个帮助我的链接。
首先,确保你的rtmp
流播放在这里检查:http://support.akamai.com/flash/index.html?autostart=true&url=rtmp://REPLACE-WITH-YOUR-RTMP-STREAM-URL
我发现以下两种资源对你的观点更有帮助:
- 围绕OSMF的攻击FCSubscribe支持
- 内部FCSubscribe示例
使用onFCSubscribe
和onFCUnsubscribe
来打开和关闭netStream
public var hostName:String = "rtmp://client.flash.internapcdn.net/client/live_1";
public var streamName:String = "thestream";
public var netConnection:NetConnection;
public var netStream:NetStream;
public var video:Video;
public function BasicLiveVideo()
{
video = new Video();
this.addChild(video);
netConnection = new NetConnection();
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
var rtnClient:Object = new Object();
rtnClient.onFCSubscribe = function (info:Object){
netStream.play(streamName);
video.attachNetStream(netStream);
}
rtnClient.onFCUnsubscribe = function (info:Object){
netStream.close();
}
netConnection.client = rtnClient;
netConnection.connect(hostName);
}