RTMFPを使用したビデオチャットの実験
ちょっと興味があったけどまだ手をつけきれていなかったFlashPlayer10.1の新機能「RTMFPマルチキャスト」を勉強ついでにやってみました。
今回デモで制作したのは「ローカルネットワーク上で動作するサーバレスのビデオチャット」です。
RTMFPビデオチャット(RTMFP Video Chat Example) – wonderfl build flash online
■ 使い方
1. 同じLAN上にある2台のWebカメラ付きPCでこのページを開きます。
2. Start ConnectをクリックするとFlashPlayerの設定パネルが開きますので「許可」をクリックします。上部のテキストエリアに”NetConnection.Connect.Success”が表示されれば接続成功です。
3. どちらか片方のPCでページ上部のBroadCastボタンを押し、カメラの使用を許可します。
4. うまくいけばもう片方のPCにBroadCastしたPCのカメラ映像が表示されます。
5. 先ほど受信した側のPCのBroadCastボタンを押すと双方向で映像と音声のやりとりが出来ます。
6. Massageのテキスト入力エリアにテキストを入力してSend Messageボタンを押すと相手にテキストを送信できます。
※ 1台のPCでもブラウザのウィンドウを2つ開けばとりあえず挙動の確認はできます。但し音声がダブって変なエコーがかかったようになりますが・・・
接続のためのコード(主要部分)は以下に。
Net Connectionを接続します
private function doConnect():void {
_nc = new NetConnection();
_nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
_nc.connect("rtmfp:");
}
NetConnection.Connect.Successが呼ばれたらNetGroupインスタンスを作ります
private function addNetGroup():void{
// GroupSpecifier
_gs = new GroupSpecifier(グループ識別子);
_gs.postingEnabled = true;
_gs.ipMulticastMemberUpdatesEnabled = true;
_gs.multicastEnabled = true;
_gs.addIPMulticastAddress(マルチキャストに使用するアドレス);
// NetGroup
_ng = new NetGroup(_nc, _gs.groupspecWithAuthorizations());
_ng.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
}
NetGroup.Connect.Successが呼ばれたら送信用NetStreamを確立してカメラインスタンスを割り当てます。
private function broadCast(e:MouseEvent):void {
// NetStream
_ns = new NetStream(_nc, _gs.groupspecWithAuthorizations());
_ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
setUpCamera()
_ns.attachCamera(_cam);
_ns.publish(_streamName);
}
あとは、受信用のNetStreamを作りVideoインスタンスにストリームを割り当てると表示できます。
またチャット部分は今回は NetGroup.post(Object); を送受信しています。

“RTMFPを使用したビデオチャットの実験” に対して1件のコメントがあります。
コメントは受け付けていません。