NetConnection只有一個connect方法,NetStream就完整多了,方法如下:
close() 關閉
pause() 暫停
play() 播放
seek(n) 移動到n秒數值;
setBufferTime(n) 設置n秒的緩沖區;
下面的是屬性了:
bufferLength 目前在緩沖區的秒數數值;
bufferTime 由setBufferTime設置的秒數數值;
currentFps 目前在串流資料中的每秒影格數;
time 以秒為單位,當前已經播放過的時間;
事件處理函數:
onStatus 返回串流的狀態;
onMetaData 返回串流的總時間;
例:
在庫中創建一個視頻元件,取名為my_video;拖到場景中放好位置,在幀上輸入如下代碼:
var connection_nc:NetConnection = new NetConnection();//建立一個鏈接對象,
connection_nc.connect(null);//開始鏈接。
var stream_ns:NetStream = new NetStream(connection_nc);//建立一個視頻對象,並和鏈接對象關聯。
my_video.attachVideo(stream_ns);//場景中的新建視頻實例加載視頻。
stream_ns.setBufferTime(5);//設定N秒鍾的時間緩沖區;
stream_ns.play("video_1.flv");//視頻開始播放。
TotalTime();
stream_ns.onStatus = function(infoObject:Object) {//視頻的事件反饋函數。
for (var prop in infoObject) {//獲取事件內容infoObject[prop];
trace(infoObject[prop]);//跟蹤一下stream_ms狀態
var test:String = infoObject[prop];
if (test == "NetStream.Play.Stop") { //假如事件內容是flv播放完畢,則開始播放下一個或者重新播放,這就看自己的要求了。
trace("播放完畢,馬上開始播放下一個");
stream_ns.play("video_2.flv");
TotalTime();
}
}
};
function TotalTime() {//duration獲取影片的長度,flashmx2004下沒有onMetaData,所以需要自己給它定義一個;flash8就不存在這樣的問題,可以直接使用,也可以用2004的代碼
stream_ns["onMetaData"] = function (metadata) {
Time_txt.text = "TotalTime: "+metadata.duration;
};
}