Cumulusサーバーを使用してRTMFPとのボイスチャットを作成しています。ユーザーは、同じNetGroupに参加することで相互に接続します。
サブスクライブされたNetStreamsのボイスチャットおよび通話機能はうまく機能します。
ただし、ユーザーがブラウザウィンドウを閉じると、同じNetGroup内のすべてのユーザーのFlashプラグインがクラッシュする場合があります。
エラーは報告されておらず、IDE(FlashDevelop)からFlashアプリケーションを起動してもクラッシュは発生しないようであるため、何が起こっているのかわかりません。私が知っているのは、ユーザーがFlashアプリケーションを終了する(ブラウザウィンドウ/アプリを閉じる)ときに発生することがあるということだけです。
これは、NetGroupへの接続が確立され、オーディオ公開ストリームが公開される方法です(Cumulusサーバーへの接続が確立された後)。
_gspecMain = new GroupSpecifier("MainGroup");
_gspecMain.multicastEnabled = true;
_gspecMain.postingEnabled = true;
_gspecMain.serverChannelEnabled = true;
_gspecMain.objectReplicationEnabled = false;
_group = new NetGroup(_netConnection, _gspecMain.groupspecWithAuthorizations());
_group.addEventListener(NetStatusEvent.NET_STATUS, handleNetGroupStatus);
// Audio
_sendStream = new NetStream(_netConnection, NetStream.DIRECT_CONNECTIONS);
_sendStream.addEventListener(NetStatusEvent.NET_STATUS, handleNetStreamStatus);
_sendStream.client = this;
_sendStream.attachAudio(_mic);
_sendStream.publish("media");
これは、公開をリッスンする受信NetStreamが作成される方法です(ネイバーが接続するときはいつでも):
var netStream :NetStream = new NetStream(_netConnection, p_netStatusEvent.info.peerID);
netStream.addEventListener(NetStatusEvent.NET_STATUS, handleNetStreamStatus);
netStream.client = this;
netStream.play("media");
何が原因でしょうか?隣人が切断したことが通知されたときに、おそらく何か特別なことをする必要がありますか?クラッシュが何らかの通知の前に発生したのか、その後に発生したのかさえわかりません...