4

我正在努力寻找有关FCSubscribe各种 CDN 使用的方法的任何信息。我需要在自定义视频播放器中实现这些方法。

我想要这些方法的官方规范,但即使是对“FCSubscribe”的 SO 搜索也只会产生 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(类似于 a NetStatusEvent)的结构。

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

4

1 回答 1

0

对于那些希望增加onFCSubscribe支持的人,这里有几个对我有帮助的链接。

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

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

您使用onFCSubscribeandonFCUnsubscribe来打开和关闭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);
}
于 2015-04-16T18:07:25.910 回答