開発環境 Apache Flex SDK 4.12.1
FlashDevelop 4.6.2.5
実行環境 Microsoft Windows 8.1 (64bit)
プロジェクトの種類 ActionScript 3/AS3 Project
プロジェクト名 VideoTest

Main.as
package 
{
    import flash.display.*;
    import flash.events.*;
    import flash.media.*;
    import flash.net.*;
    import flash.text.*;
 
    public class Main extends Sprite 
    {
        // 動画ファイルは各自用意する。flv,mp4の再生を確認。
        private const videoURL:String = "sample.mp4"; // カレントはswfと同じディレクトリ
        private var connection:NetConnection;
        private var stream:NetStream;
        private var textField:TextField = new TextField;
 
        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            // entry point
 
            textField.defaultTextFormat = new TextFormat(null, 20, 0xffffff);
            textField.text = "hello";
            addChild(textField);
 
            connection = new NetConnection;
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(null);
 
            addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }
 
        private function onEnterFrame(e:Event):void 
        {
            textField.text = stream.currentFPS.toFixed(1) + " fps";
        }
 
        private function netStatusHandler(e:NetStatusEvent):void 
        {
            switch (e.info.code) 
            {
                case "NetConnection.Connect.Success":
                    connectStream();
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Unable to locate video: " + videoURL);
                    break;
            }
        }
 
        private function connectStream():void 
        {
            stream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
 
            var video:Video = new Video(640, 360);
            video.attachNetStream(stream);
            stream.play(videoURL);
            addChildAt(video, 0); // back
        }
 
        private function securityErrorHandler(e:SecurityErrorEvent):void 
        {
            trace("securityErrorHandler: " + e);
        }
 
        private function asyncErrorHandler(e:AsyncErrorEvent):void 
        {
            // ignore AsyncErrorEvent events.
        }
 
    }
 
}
 
最終更新:2014年07月01日 11:16