在客户端实现FCSubscribe

时间:2013-06-07 09:33:19

标签: actionscript-3 cdn netstream netconnection

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

没有太多的东西。

我特别关注的是:

  • 我应该在致电NetStream后直接开始播放FCSubscribe,还是应该等待回电?

  • 我已经实现了onFCSubscribe回调,但我不知道我应该在这做什么。 Args包含类似info.code的结构(类似于NetStatusEvent)。

  • 在其他实现中我见过onFCUnsubscribe回调,我是否应该实现这个?为什么?

1 个答案:

答案 0 :(得分:0)

对于那些希望添加onFCSubscribe支持的人来说,这里有一些帮助我的链接。

首先,通过在此处检查来确保您的rtmp流播放: http://support.akamai.com/flash/index.html?autostart=true&url=rtmp://REPLACE-WITH-YOUR-RTMP-STREAM-URL

更重要的是,我发现这两个资源很有用:

您使用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);
}