Реализация FCSubscribe на стороне клиента
Я изо всех сил пытаюсь найти любую информацию о FCSubscribe
методы, используемые различными CDN. Мне нужно реализовать методы в пользовательском видеоплеере.
Я хотел бы получить официальную спецификацию для этих методов, но даже поиск 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 ответ
Для тех, кто хочет добавить onFCSubscribe
поддержка, вот пара ссылок, которые мне помогли.
Во-первых, убедитесь, что ваш rtmp
поток играет, проверив его здесь: http://support.akamai.com/flash/index.html?autostart=true&url=rtmp://REPLACE-WITH-YOUR-RTMP-STREAM-URL
Более того, я считаю полезными эти два ресурса:
Вы используете 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);
}