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