2016-06-17 2 views
-1

私は、Adobeメディアサーバーのmain.asc(最新版、5.0.10と思う)の内側次のコードを持っている:Adob​​e Media ServerでonPublishがトリガされたときにメソッドを実行するにはどうすればよいですか?

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

そして、私のフラッシュファイルに接続されている私のActionScript(3.0)ファイル、内部のこのコード:

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

あなたは 'streamConnected()'関数を2回定義していますので、例えば以下のような定義を削除してください: 'nc.client = {onBWDone:function():void {}、streamConnected:streamConnected};' .. – akmozo

+0

@akmozoありがとうございました.Adobe Media Server(および一般的なActionScript)のドキュメントは非常に疎です。それを答えにすることができれば、私はそれを受け入れるだろう。 – think123

答えて

1

streamConnected()関数がnc.clientstreamConnectedプロパティに接続されていないためnc.clientオブジェクト内で定義されている空のものです。だから、

"Stream Connected"メッセージを取得するために、あなたは例えば、このようなこと無名関数を変更することができますすることができます

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

希望:あなたの既存のstreamConnected()機能を使用することができます

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

または単に助けて。

+0

そうですね、ありがとうございます。間違いなくおそらくそれ以上に私を助けてくれました。 – think123

関連する問題