FlvPlayBack Component エラー + AS3(解決)

先日のエントリー(FlvPlayBack Component エラー + AS3)で記述した FlvPlayBack Component で存在しない Flv へアクセスした際の Error が Catch 出来なかったことについて、どなたか分かりませんが有難いコメントを頂きまして解決しましたので、メモ。関数の詳細を見落としてたー!!

FlvPlayBack に getVideoPlayer(index:Number) というメソッドがあって、クラス内に FlvPlayBack が 1 つのみある状態(activeVideoPlayerIndex が 0 )なので getVideoPlayer(0) で VideoPlayer オブジェクト を作成し、このオブジェクトの netStream という getter メソッドで NetStream オブジェクトを取得し、後は通常の NetStatusEvent で状態を listen して対応するという事らしいです。今回は存在しない Flv の URL を設定された時対処したかったので、NetStatusEvent の info.code が NetStream.Play.StreamNotFound になる時に対応出来ました。NetStream オブジェクトを通常の様に管理できるので close, seek, resume などのメソッド等も同様に対応できる様。

これで明快ですね!

package
{
	import fl.video.FLVPlayback;
	import fl.video.VideoPlayer;
	import flash.display.MovieClip;
	import flash.events.NetStatusEvent;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	public class TestCompPlayer extends MovieClip
	{
		private var _compPlayer:FLVPlayback;
		private var _txtDebug:TextField;
		private var _video:VideoPlayer;
		//-----------------------------------------------------------
		//  construct method
		//-----------------------------------------------------------
		public function TestCompPlayer()
		{
			super();
			this.init();
		}
		//-----------------------------------------------------------
		//  private method
		//-----------------------------------------------------------
		private function init():void
		{
			// Objects
			this._compPlayer = this["compPlayer"];
			this._txtDebug   = this["txtDebug"];
			this._video      = this._compPlayer.getVideoPlayer(0);
			// Objects Setting
			this._compPlayer.isLive
			this._txtDebug.autoSize      = TextFieldAutoSize.NONE;
			this._txtDebug.wordWrap      = true;
			this._txtDebug.multiline     = true;
			this._txtDebug.selectable    = false;
			this._txtDebug.condenseWhite = true;	
			// Play
			this._compPlayer.source = "http://www.convexstyle.com/no.flv";
			// Events
			this._video.netStream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatusHandler, false, 0, true);
		}
		private function onNetStatusHandler(evt:NetStatusEvent):void
		{
			switch(evt.info.code)
			{
				case "NetStream.Play.StreamNotFound":
				{
					trace("Deal with Errors !!!!!");
					break;
				}
				default:
				{
					break;
				}
			}
			this._txtDebug.appendText(evt.info.code + "¥n");
		}	
	}	
}

もやもやが晴れた。

・・・・・

「参考サイト」
FlvPlayBack について
Video Player について
NetStream について
NetStatusEvent について

・・・・・

「お勧め本」

ページの一番上へ移動

トラックバック

この記事へのトラックバック URL は下記の通りです。
http://www.convexstyle.net/mt/mt-tb.cgi/125

コメントの投稿

初めて投稿される方のコメントは管理者の承認が必要となります。ご了承ください。