2009/02/12 | 16:59 pm

Error 2044&1069 with flv

AS3 にて flv ビデオのメタデータ取るときに出たエラー。

Error #2044: ハンドルされていない AsyncErrorEvent : text=Error #2095: flash.net.NetStream はコールバック onXMPData を呼び出すことができませんでした。 error=ReferenceError: Error #1069: .CustomClient にプロパティ onXMPData が見つからず、デフォルト値もありません。

初めて見た名前ばかり。
どーも、よろしくおねがいしますっ的なですね。

イベント作成して、そっから metaData の info を引数で渡す方法を取っていたのですが、
どーも Object() を渡す EventDispatcher の時にダメ出しされてるみたいです。

なので、そこに onXMPData(info:Object) って function 入れると何も言わなくなります。

private function playVideo():void {
	ns = new NetStream( nc );
	ns.bufferTime = 2;
	clientObj = new CustomClient();
	ns.client = clientObj;
	clientObj.addEventListener( NetStreamEvent.METADATA_RECEIVED, onMetaDataReceived );
	video.attachNetStream( ns );
	video.smoothing = true;
	ns.play( MOVIE_PATH );
};

private function onMetaDataReceived( e:NetStreamEvent ):void {
	// グローバル変数に代入
	metaData = e.info;
	// ビデオの時間計ったりして進行状況を見張る関数
	addEventListener( Event.ENTER_FRAME, countDuration );
};

// クラスを閉じた後
import flash.events.EventDispatcher;
import event.NetStreamEvent;

class CustomClient extends EventDispatcher {

	public function onMetaData( info:Object ):void{
		dispatchEvent( new NetStreamEvent( NetStreamEvent.METADATA_RECEIVED, info ) );
	}
	// これ入れるとエラーが消える。中身は無くてもOK
	public function onXMPData(info:Object):void {};

}

ちなみに、NetStreamEvent クラスはこんなんです。

package event {

	import flash.events.Event;

	public class NetStreamEvent extends Event {

		// カスタムイベント名
		public static const METADATA_RECEIVED:String = "metadata_received";

		public var info:Object;

		public function NetStreamEvent( type:String, info:Object ):void {
			super( type );
			this.info = info;
		};

		// イベントの複製
		public override function clone():Event {
			return new NetStreamEvent( type, info );
		};

		// イベント形式
		public override function toString():String {
			return formatToString( "MyEvent", "type", "bubbles", "cancelable", "eventPhase", "info" );
		};

	};

};

onXMPData() は、Flash Player 10 および、Adobe AIR 1.5 以降じゃないといじくれないらしいス。


AS3 キューポイントとメタデータの使用


追記 : 09.02.12 – 20:13

前に使った flv ファイルを使ったら、大丈夫だったので、多分 CS4 の FLV ENCODER 使うと出るっぽい。
(↑ 未確認。。。)

COMMENT

CATEGORY

POSTED

jam





JUN NAKAJIMA
Tokyo, Japan.
member of Onawatobi.
contact@brooklyn.jp