feb19.jp

Nobuhiro Takahashi
Designer / Engineer

Flash Media Serverで動画ストリーミング

Flash Media Serverで動画ストリーミング

仕事で使う事があったのでメモ。FMS2で動画をストリーミングする方法。

全然Flash側の実装は簡単なんですけどね。

  1. まずライブラリパネルで新規ビデオを選択し、ビデオオブジェクトを作ります。
  2. それをステージ上に配置し、インスタンス名をmyVideoにします。
  3. 下記のコードを記述して、試してみてください。

このようなコードで実装できます。

var nc = new NetConnection();
var connect_url = "******";	//接続サーバー名や接続アプリケーション名など
var video_name = "*****";	//ビデオのファイル名
//接続開始
nc.connect("rtmp://******");	//rtmpのコネクション先アドレス
nc.onStatus = function(info) {
	//接続できたか判別
	if(info.code == "NetConnection.Connect.Success") {
		trace("接続成功");
		setStream();
	} else if(info.code == "NetConnection.Connect.Rejected") {
		trace("接続拒否");
	} else if(info.code == "NetConnection.Connect.Closed") {
		trace("接続切断");
	} else if(info.code == "NetConnection.Connect.Failed") {
		trace("接続失敗");
	}
}
function setStream(){
	//ストリーム開始
	ns = new NetStream(nc);
	ns.setBufferTime(5);
	myVideo.attachVideo(ns);
	_root.attachAudio(ns);
	ns.play(video_name, 0, -1);
	//第二引数の0はライブではない、既にあるFLVを再生する
	//第三引数の-1は最初から最後まで流すという意味
}

.connectで繋いぐコネクションに対して、onStatusでそのコネクションの状態はどうなっているかを判別し、接続が成功となっている場合は普通にActionScriptでビデオを再生する場合と同じような記述をすればOKという感じです。

ちなみに.attachAudioでNetStreamオブジェクトの音声をムービークリップにアタッチしてますが、そのムービークリップを引数にnew SoundでSoundオブジェクトを作れば、そのSoundオブジェクトを操作する事で、音量などを変更する事が可能です。

あ、あと上のコードをそのまま何かクラスファイルに書いたらスコープの関係で上手く動かないと思います。上のコードはフレームアクションの場合のコードです。クラスに組み込む場合はスコープに注意して実装してください。

ヘテムルとかならFMS2のデベロッパーエディションがすでに搭載されているので、実装練習とかをしてみるといいかもしれません。

Tweet Share Bookmark

Navigation

prev: The New iPod touch, iPod Classic, iPod nano and iPod shuffle.
next: MicrosoftのSilverlightとWPF

Recently Entries