【问题标题】:How to run a method when onPublish is triggered in Adobe Media Server?在 Adob​​e Media Server 中触发 onPublish 时如何运行方法?
【发布时间】:2016-06-17 12:03:56
【问题描述】:

我在 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 的各个部分,因此我们将不胜感激。

【问题讨论】:

  • 您已经定义了两次 streamConnected() 函数,因此请删除其中一个定义,例如:nc.client = { onBWDone: function():void{}, streamConnected: streamConnected }; ...
  • @akmozo 非常感谢您 - Adob​​e Media Server(以及一般的 ActionScript)的文档非常少。如果你能把它变成答案,我会接受。

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


【解决方案1】:

使用您当前的代码,将执行的唯一函数是在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
};

希望能有所帮助。

【讨论】:

  • 是的,谢谢你 - 确实比看起来更能帮助我。
猜你喜欢
  • 2013-07-01
  • 2013-09-10
  • 2017-04-30
  • 1970-01-01
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 2022-08-04
  • 1970-01-01
相关资源
最近更新 更多