Flash Media Server4.5 ⑤ ビデオチャットを作成する~その4~
Flash Media Server4.5 ⑤ ビデオチャットを作成する~その4~
「FlashMediaServer4.5(FMS)の環境を利用し、簡易ビデオチャットを作成する」の4回目です。
前回実装した、Webカメラで取得した映像をFMSへ配信する部分のスクリプトを説明します。
【解説】映像配信時のスクリプトの説明です!
var nc:NetConnection = new NetConnection();
FlashPlayerとFMS間に双方向の接続オブジェクトインスタンスを生成します。
インスタンス名を「nc」としています。
nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
イベントリスナーを用意します。
イベントとは、マウスやキーボードの操作等が発生するタイミングのことを言います。
イベントリスナーはイベントの発生を検知します。
ここでは、NetConnectionオブジェクトである「nc」の
「netStatus」イベント(NetStatusEvent.NET_STATUS)を検知します。
イベントの発生をきっかけとして、第2引数で定義しているonNetStatus関数が実行されます。
(onNetStatus関数の処理は4行目以降に記載されています)
nc.connect("rtmp://[FMSのIPアドレス]/test");
接続先FMSを指定し、接続します。
function onNetStatus(e:NetStatusEvent):void{
関数onNetStatusを記述します。
引数はNetStatusEventオブジェクトになります(変数「e」として扱います)。
voidは戻り値がないことを表しています。
trace(e.info.code);
traceは、変数の中身を出力ウィンドウに表示する関数です。
NetStatusEventのステータスコードを表示しています。
if(e.info.code == "NetConnection.Connect.Success"){ var ns:NetStream = new NetStream(nc);
接続が成功した場合、NetStreamオブジェクトのインスタンス(ns)を生成します。
NetStreamオブジェクトはFlashPlayerとFMS間で単方向のストリーミング接続を開きます。
ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus2);
イベントリスナーを用意します。
ここでは、NetStreamオブジェクトである「nc」の
「netStatus」イベント(NetStatusEvent.NET_STATUS)を検知します。
イベントの発生をきっかけとして、第2引数で定義しているonNetStatus2関数が実行されます。
(onNetStatus2関数の処理は11行目以降に記載されています)
ns.attachCamera(mycam); ns.attachAudio(mycam_audio); ns.publish("nspublish", "live");
nsにカメラ映像と音声をattachします。
nsをパブリッシュします(FMSへストリーミング配信されます)。
第二引数の「live」はライブデータを記録せずにパブリッシュすることを指定します。
記録したい場合は「record」を指定します。
function onNetStatus2(e:NetStatusEvent):void{ trace(e.info.code); }
NetStatusEventのステータスコードを表示しています。
} }
if文とonNetStatus関数を閉じます。
以上で処理が終了となります。
※参考リンク:ActionScript 3.0 コンポーネントリファレンスガイド
NetConnectionとNetStreamのイベントリスナで取得したNetStatusEventのcodeプロパティの値が、一覧にまとまっています。
今回は、publish部分のソース説明を行いました。
『NetConnectionインスタンス生成⇒NetStreamインスタンス生成⇒publish』
という流れで、publishが実行されていることがお分かり頂けましたでしょうか。
次回は、受信側のflash作成を行う予定です。