flash中NetConnection與NetStream知識整理


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;
 };
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM