NetStream.お客様のカスタムコールバックハンドラの問題
-
28-09-2019 - |
質問
私は追加しようとしているカスタムコールバックハンドラをNetStreamクライアントは、p2pアプリケーション.問題は、私は、そのリンクがどのようなハンドラのNetStreamト機能していないとしています。そのNetStream.クライアントオブジェクトが変更されます。ピックアップしました。デフォルトのオブジェクトです。が変化するクライアントにこな問題解決にはならない。
のremoteControlStreamを受信します。のlocalControlストリームのストリームには公表されている
このlocalControlStreamられている送信相手に、受信したremoteControlStream:
private function initLocalControlStream():void{
localControlStream = new NetStream(nc, NetStream.DIRECT_CONNECTIONS);
localControlStream.addEventListener(NetStatusEvent.NET_STATUS, localControlHandler);
localControlStream.publish(myPeerID+"control");
var localControlStreamClient:Object = new Object();
localControlStreamClient.onPeerConnect = function(callerns:NetStream):Boolean{
txtTest.text = "peer connected";
if(side=="host"){
farPeerID = callerns.farID;
if(!allreadyConnected){
initRemoteControlStream();
allreadyConnected = true;
}
}
return true;
}
localControlStream.client = localControlStreamClient;
}
このNetStreamこのストリーム:
private function initRemoteControlStream():void{
txtTest.text = "setting up remote stream";
if(side=="client"){
farPeerID = this.parameters.hostFingerprint;
}
remoteControlStream = new NetStream(nc, farPeerID);
remoteControlStream.addEventListener(NetStatusEvent.NET_STATUS, remoteControlHandler);
remoteControlStream.client.test = new function():void{
txtTest.text = "Callback handler working";
}
remoteControlStream.play(farPeerID+"control");
remoteControlStream.client = this;
}
を追加しますハンドラのremotecControlStreamこのように(上)
remoteControlStream.client.test = new function():void{
txtTest.text = "Callback handler working";
}
のonPeerConnect法のlocalControlStreamんだ接続する際のハンドラを追加します。時を削除しまうハンドラのonPeerConnectメソッドが呼び出されます。
さえあれば誰でもパソコンでの助言-アイデアです。この問題は、NetStream.クライアント
おはよろしくお願いいたします。
ジェラルド-デ-グラ
解決
この層雲ですか。使用した、以下のモデル月 NetStatusEvent.NET_STATUS
'NetConnection.Connect.Success'
の NetConnection
地 Main.connection
呼んだとき、以下の機能の静的 Streams
クラス:
` public static function initOut(): void {
streamOut = new NetStream(Main.connection, NetStream.DIRECT_CONNECTIONS);
var peerConnected:Object = new Object();
peerConnected.onPeerConnect = function(subscriberStream : NetStream) : Boolean {
var oo:RecievingObject = new RecievingObject();
subscriberStream.client = oo;
if(!streamIn){ initIn((subscriberStream as NetStream).farID); }
return true;
}
streamOut.client = peerConnected;
streamOut.addEventListener(NetStatusEvent.NET_STATUS, onOutStatus);
streamOut.attachCamera(Camera.getCamera());
streamOut.attachAudio(Microphone.getMicrophone());
streamOut.publish('media');
}`
こちらは initIn
機能:
public static function initIn(id: String): void {
streamIn = new NetStream(Main.connection, id);
streamIn.client = new RecievingObject();
streamIn.addEventListener(NetStatusEvent.NET_STATUS, onInStatus);
streamIn.receiveVideo(true);
streamIn.receiveAudio(true);
streamIn.play('media');
VideoWindow.initIn(streamIn);
Mixer.initSound(streamIn);
}
の RecievingObject
クラス:
public class RecievingObject extends Object
{
public function RecievingObject()
{
}
public function message(str: String):void {
ChatWindow.addText('>> ' + str);
}
public function onPeerConnect(ns: NetStream): Boolean {
// trace(ns.farID);
return true;
}
}
所属していません StackOverflow