0

AdobeCirrusを使用してNetGroupを確立しました。新しいストリームが公開されているときにイベントNetGroup.Neighbor.Connectを受信するので、すべてのクライアントは正常に接続してお互いを見ることができます。NetGroup.MulticastStream.PublishNotify

ただし、ユーザーが公開されたストリームにサブスクライブしている場合、公開者は通知を受け取りません(NetStatusEventおよびonPeerConnectメソッドへのコールバックはありません)。ただし、サブスクライバーは問題なくストリームを受信します。

動作していないonPeerConnectメソッドに関する他のすべての質問は、NetStream.DIRECT_CONNECTIONSに関連していましたが、私の場合は、NetGroupを使用しています。

ここで何が問題になっていますか?

// Only the relevant parts, a few things have been stripped (e.g. connect the netGroup only when the NetConnection has been established etc.)
var groupSpecifier:GroupSpecifier = new GroupSpecifier("group");
groupSpecifier.multicastEnabled = true;
groupSpecifier.postingEnabled = true;
groupSpecifier.serverChannelEnabled = true;
groupSpecifier.objectReplicationEnabled = true;
groupSpecifier.ipMulticastMemberUpdatesEnabled = true;
groupSpecifier.routingEnabled = true;

var netGroup:NetGroup = new NetGroup(netConnection, groupSpecifier.groupspecWithAuthorizations());

var netStream:NetStream = new NetStream(netConnection, groupSpecifier.groupspecWithAuthorizations());
netStream.client = {onPeerConnect:onPeerConnect};
netStream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);

// Never gets called
public function onPeerConnect(netStream:NetStream):Boolean {
    trace("onPeerConnect: "+netStream.farID);

    return true;
}

private function onNetStatus(event:NetStatusEvent):void {
    trace(event.info.code);

    switch(event.info.code) {
        case EventCodes.STREAM_CONNECT_SUCCESS :
            netStream.attachCamera(camera);
            netStream.attachAudio(microphone);
            netStream.publish(streamName);
            break;
    }
}
4

1 に答える 1

3

onPeerConnectは、NetGroupsではなく、DIRECT_CONNECTIONSを使用している場合にのみ呼び出されます。残念ながら、これはドキュメントやその他の場所では言及されていません。

于 2011-09-08T21:21:08.857 に答える