3

ライブの音声およびテキスト チャットを行うために、Cumulusサーバーを実行しています。

設定は、各クライアントが group.post() を介して同じ NetGroup 内の他の各クライアントにデータを投稿できることです。残念ながら、この関数は非常に遅い (少なくとも 0.5 秒の遅延) ため、NetStream.send を使用して他のクライアントの関数を呼び出し、それを介してデータを渡すことに切り替えました。これはほぼ瞬時に機能します。

ただし、現在、別の NetGroup を使用して別のチャット ルームを構築しようとしています。しかし、そうすると、NetStream.send() が機能しなくなり、他のクライアントで関数が呼び出されなくなり、音声データが転送されなくなります。基本的に、NetStream のパブリッシング全体が機能していないようです。

各クライアントで NetGroup とパブリッシング ストリームを確立するための次のセットアップがあります。

var gspec:GroupSpecifier = new GroupSpecifier("Group1");
gspec.multicastEnabled = true;
gspec.postingEnabled = true;
gspec.serverChannelEnabled = true;
gspec.objectReplicationEnabled = true;
gspec.routingEnabled = true;

_group = new NetGroup(_netConnection, gspec.groupspecWithAuthorizations());
_group.addEventListener(NetStatusEvent.NET_STATUS, handleNetGroupStatus);

_sendStream = new NetStream(_netConnection, gspec.groupspecWithAuthorizations()); 
_sendStream.addEventListener(NetStatusEvent.NET_STATUS, handleNetStreamStatus);
_sendStream.client = this;
_sendStream.attachAudio(_mic); 
_sendStream.publish("media");

次のコードは、「メディア」ストリームをリッスンするために使用されます。

case "NetGroup.Neighbor.Connect":
  var netStream :NetStream = new NetStream(_netConnection, p_netStatusEvent.info.peerID);
  netStream.addEventListener(NetStatusEvent.NET_STATUS, handleNetStreamStatus); 
  netStream.client = this;
  netStream.play("media");
break;

NetGroup 接続自体は機能し、ネイバーが接続すると、各クライアントで「NetGroup.Neighbor.Connect」が呼び出されます。しかし、_sendStream 自体は機能しません。データは受信されず、関数は呼び出されません。

パブリッシング NetStream が次のように構築されている場合に機能します。

_sendStream = new NetStream(_netConnection, NetStream.DIRECT_CONNECTIONS); 

ただし、NetStream が単一の NetGroup に送信することだけが必要であり、Adobe Documentationによると、コンストラクターでgspec.groupspecWithAuthorizations()を使用すると、まさにそれが許可されるはずです。

ここで何か不足していますか?

4

1 に答える 1

2

私は答えを見つけました:

また、受信 NetStream がp_netStatusEvent.info.peerIDの代わりにgspec.groupspecWithAuthorizations ()をリッスンするようにする必要があります。

これは機能します。残念ながら、ボイス チャットは信じられないほど遅く (NetGroup.post() と同じくらい遅い)、多くのサウンド アーティファクトが発生するため、ボイス チャットが不可能になります。

そのため、チャット ルームごとに別の解決策を見つける必要があります...

于 2012-04-18T09:55:20.707 に答える