
FMS2だと、NetStreamのクライアントステータスメッセージ(info.code)に「NetStream.Play.InsufficientBW」というコードがあるのですが、これを使えばたとえば映像のストリーミング速度が落ちたとき、自動的に低いビットレートの映像に切り替える事が可能です。
まず、二つのビットレートの映像を用意しておく。高いビットレートの映像と、低いビットレートの映像。
で、普通にFMSにNetConnectionなNetStream(どんな日本語だ)で、高いビットレートの映像を流す。
ns.onStatusのハンドラ内に「NetStream.Play.InsufficientBW」のコードがきた時の処理を作る。内容は、現在のNetStreamの.timeプロパティをtとかの変数で持っておいて、(新しく表示させる)低いビットレートの映像のファイル名をplayの第一引数において、ns.play(s,t,-1,true);という感じで再生しなおす。これだけ。
サンプル
ns = new NetStream(nc);
ns.onStatus = function(info){
switch(info.code){
case "NetStream.Play.InsufficientBW":
var t = this.time;
this.play("lowBW_video", t, -1, true);
break;
}
}
video.attachVideo(ns);
ns.setBufferTime(3);
ns.play("highBW_video", 0, -1, true);
ちなみにヒムカンパニーさんがFMS2のDeveloping Media Applicationsを翻訳してくれています。このヒムカンパニーさん、Flash関連の翻訳記事をバンバン出してくれています。素敵過ぎてオラ死にそうです。
海外のリソース読んでるとなるほどなるほどって思うのが20%で後80%が英語を読むのがムカついてきて発狂してトイレ行ってオッパッピーしてしまうので俺も英語勉強してヒムカンパニーさんみたいな素敵な人になろう。
ってAdobeが日本語で記事を出してくれていました。ヒムさん無念。
メディアアプリケーション開発ガイド
FMS2ファーストステップガイド
FMS2インストール済みレンタルサーバー:heteml

