如何在Adobe Media Server中触发onPublish时运行方法?

时间:2016-06-17 12:03:57

标签: actionscript-3 flash rtmp adobe-media-server

我在Adobe Media Server的main.asc中有以下代码(我认为最新版本为5.0.10):

application.onPublish = function (clientObj, streamObj) {
  for (var i = 0; i < application.clients.length; i++){
    application.clients[i].call("streamConnected");
  }
}

这个代码在我的ActionScript(3.0)文件中,连接到我的flash文件:

nc = new NetConnection();

nc.addEventListener(NetStatusEvent.NET_STATUS, onConnectionStatus);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
nc.client = { onBWDone: function():void{}, streamConnected: function():void{} };
nc.connect(videoURL);

...

public function streamConnected(...rest):void {
  trace("Stream Connected");
}

我不太清楚我的代码意味着什么 - 大部分来自互联网的各个部分,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

使用当前代码,唯一要执行的函数是在nc.client对象中定义的空函数,因为streamConnected()函数未附加到nc.client&# 39; s streamConnected属性。

因此,要获取"Stream Connected"消息,您可以更改此匿名函数,例如:

nc.client = { 
    onBWDone: function():void{}, 
    streamConnected: function(...rest):void {
        trace("Stream Connected");
    }
};

或者只是您可以使用现有的streamConnected()功能:

nc.client = { 
    onBWDone: function():void{}, 
    streamConnected: streamConnected
};

希望可以提供帮助。