如何在 Adob​​e Media Server 中触发 onPublish 时 运行 方法?

How to run a method when onPublish is triggered in Adobe Media Server?

我在 Adob​​e 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");
}

我不太确定我的代码是什么意思 - 大部分代码都来自 Internet 的各个部分,因此我们将不胜感激。

使用您当前的代码,将执行的唯一函数是 nc.client 对象中定义的空函数,因为 streamConnected() 函数未附加到 nc.clientstreamConnected 属性.

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

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

或者您可以简单地使用现有的 streamConnected() 函数:

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

希望能帮到你。