ビデオを再生する

(サンプル一覧を表示する)

FlashDevelop を使って、FLV ビデオの再生をしてみました。
SWF と同じディレクトリにある FLV ファイルを、ダウンロードしながら再生しています。
Flash の実行画面
ビデオを再生する

Flashプレーヤーが入っていないか、JavaScriptが無効になっているようです。

Get Adobe Flash player

ビデオを再生する

ソースコード

package 
{
	import flash.display.Sprite;
	import flash.events.AsyncErrorEvent;
	import flash.events.Event;
	import flash.events.NetStatusEvent;
	import flash.events.SecurityErrorEvent;
	import flash.media.Video;
	import flash.net.NetConnection;
	import flash.net.NetStream;

	/**
	 * ビデオの再生サンプル
	 * @author Hikipuro
	 */
	public class Main extends Sprite 
	{
		/**
		 * ビデオの URL
		 */
		private var videoURL:String = "FlvTest.flv";
		
		/**
		 * ネット接続用オブジェクト
		 */
		private var netConnection:NetConnection;
		
		/**
		 * コンストラクタ
		 */
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		/**
		 * 初期化イベント
		 * @param	e
		 */
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			netConnection = new NetConnection();
			netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
			netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
			netConnection.connect(null);
		}

		/**
		 * ビデオにストリームを接続して再生する
		 */
		private function connectStream():void
		{
			var netStream:NetStream = new NetStream(netConnection);
			netStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
			netStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
			
			var video:Video = new Video();
			video.attachNetStream(netStream);
			netStream.play(videoURL);
			addChild(video);
		}
		
		/**
		 * ネットステータスイベント
		 * @param	event
		 */
		private function netStatusHandler(event:NetStatusEvent):void
		{
			switch (event.info.code) {
				case "NetConnection.Connect.Success":
					trace("connectStream");
					connectStream();
					break;
				case "NetStream.Play.StreamNotFound":
					trace("Unable to locate video: " + videoURL);
					break;
			}
		}

		/**
		 * セキュリティエラーイベント
		 * @param	event
		 */
		private function securityErrorHandler(event:SecurityErrorEvent):void
		{
			trace("securityErrorHandler: " + event);
		}

		/**
		 * 非同期処理エラーイベント
		 * @param	event
		 */
		private function asyncErrorHandler(event:AsyncErrorEvent):void
		{
			// AsyncErrorEvent を無視する
		}

	}
	
}		

外部リンク