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 以降じゃないといじくれないらしいス。
—
追記 : 09.02.12 – 20:13
前に使った flv ファイルを使ったら、大丈夫だったので、多分 CS4 の FLV ENCODER 使うと出るっぽい。
(↑ 未確認。。。)
CATEGORY
POSTED
jam


COMMENT
0 Comment