Flash Media Server4.5 ⑤ ビデオチャットを作成する~その4~

この記事は2012年8月14日に書かれたものです。内容が古い可能性がありますのでご注意ください。


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作成を行う予定です。

  • このエントリーをはてなブックマークに追加

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP