▼ActionScript3.0メモ▼
Flash Video(FLV)の表示


Flash Video(FLV)を読み込んでストリーミング再生を行うFlashを作成する。


素材の準備
セキュリティのため、ムービークリップの読み込み先は同じドメインのみ。
それ以外のムービークリップにアクセスしたい時は、クロスドメインポリシーファイルを使用してWebサイトで許可する必要がある。


robo.flv



ソースコード
VideoEx.as
package {
    import flash.display.*;
    import flash.events.*;
    import flash.media.*;
    import flash.net.*;

    //動画ストリーミングの再生
    [SWF(width=240, height=240, backgroundColor=0xFFFFFF)]
    public class VideoEx extends Sprite {
        //変数
        private var nc:NetConnection;//コネクション
        private var ns:NetStream;    //ストリーム

        //コンストラクタ
        public function VideoEx() {
            //コネクションの生成
            nc=new NetConnection();
            nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);
            nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR,onSecurityError);
            nc.connect(null);
        }

        //通信状態イベントの処理
        private function onNetStatus(evt:NetStatusEvent):void {
            //成功
            if (evt.info.code=="NetConnection.Connect.Success") {
                //ストリームの生成
                ns=new NetStream(nc);
                ns.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);
                ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR,onAsyncError);

                //メタデータの取得
                var obj:Object=new Object();
                obj.onMetaData=onMetaData;
                ns.client=obj;

                //ビデオの生成
                var video:Video=new Video(128,96);
                video.x=56;
                video.y=72;
                addChild(video);
                video.attachNetStream(ns);
                   
                //ビデオの再生
                ns.play("robo.flv");
            }
            //停止
            else if (evt.info.code=="NetStream.Play.Stop") {
                trace("Stop");
            }
            //エラー
            else if (evt.info.level=="error") {
                trace("Error");
            }
        }

        //メタデータ取得イベントの処理
        private function onMetaData(info:Object):void {
        }

        //セキュリティーエラーイベントの処理
        private function onSecurityError(evt:SecurityErrorEvent):void {
            trace("SecurityError");
        }

        //同期エラーイベントの処理        
        private function onAsyncError(evt:AsyncErrorEvent):void {
            trace("AsyncErrorEvent");
        }
    }
 }



−戻る−