0
我有一個類加載和播放FLV視頻文件。我的問題是,我如何在主代碼中獲得flv的持續時間? .. 這是我的視頻類:FLV持續時間從類
package src {
import flash.display.Sprite;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.Event;
import flash.events.MouseEvent;
public class vplayer extends Sprite{
public var vid:Video = new Video(1920,1080);
private var nc:NetConnection = new NetConnection();
public var ns:NetStream;
public var listener:Object = new Object();
public function vplayer():void{
addChild(vid);
nc.connect(null);
ns = new NetStream(nc);
vid.attachNetStream(ns);
listener.onMetaData = metaDataHandler;
ns.client = listener;
//customClient.onCuePoint = cuePointHandler;
}
public var time00:Number = 0;
public function playVideo00():void{
ns.play("image00/mov00.flv");
}
public function stopVideo00():void{
ns.close();
}
/*public function cuePointHandler(infoObject:Object):void {
trace("cuePoint");
}*/
public function metaDataHandler(infoObject:Object):void {
trace (" Time: " + infoObject["duration"]);
}
}
}
..和我的主類,我有:
Veed = new vplayer();
addChild(Veed);
Veed.playVideo00();
運行程序後,我有「時間:6.76」,在輸出窗口,它起着FLV罰款,這是正確的,但我想
var myTD:int = Veed.getDuration();
在我的主類獲得持續時間。這看起來很簡單,但我無法完成!任何幫助?
我做到了這一點,我張貼這個......它顯示0 .. !!! ..我不知道爲什麼.. – 2011-05-31 06:54:43
我認爲,因爲metaDataHandler是異步調用(不是立即)。這是因爲需要首先檢索元數據。嘗試添加一個計時器,看看它是否有效?我會告訴你一個例子。 – Marty 2011-05-31 06:56:54
是的,它工作.. :)),但有沒有更好的方式來實現FLV文件的這種重要功能?我很幸運,因爲我已經有一個'addEventListener(Event.ENTER_FRAME,mainLoop);'在我的代碼中..' – 2011-05-31 07:11:48