在客户端实现FCSubscribe



我正在努力寻找有关各种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示例

使用onFCSubscribeonFCUnsubscribe来打开和关闭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);
}

相关内容

  • 没有找到相关文章

最新更新