在Flash中播放flv視頻

來源:互聯網
上載者:User

 採用ActionScript3.0指令碼實現flv視頻的播放,需要用一系列類的協作:
你需要一個NetStream對象來載入視頻和控制視頻的播放;
然而NetStream類只處理流動資料,它並不處理資料的顯示,因此需要一個Video對象使用NetStream資料在螢幕上顯示視頻。
NetStream類的建構函式需要一個NetConnection對象作為參數,該對象決定視頻資料的來源,如果Flash Video來自一個Flash Communication Server或Flash Media Server,則NetConnection對象要指向對應的伺服器。但是,如果是邊下載邊播放,那麼用一個null連接字串即可。

建立連線物件:

var videoConnection:NetConnection = new NetConnection(  );
videoConnection.connect(null);

建立資料流管理對象:

var videoStream:NetStream = new NetStream(videoConnection);

建立video對象並顯示:

var video:Video = new Video(  );
addChild(video);

關聯資料流: 

video.attachNetStream(videoStream);

開始播放:

videoStream.play("example.flv"); 

調整音量:

用NetStream對象的soundTransform屬性來調整音量;

播放時間:

用NetStream對象的time屬性來擷取視頻已經播放的時間,從開始播放開始經過的時間,以秒為單位,並且該屬性是唯讀,不能修改。

讀取視頻時間長度:

在NetStream中不提供直接的時間長度屬性,而在flv檔案的檔案中有duration資料區段提供時間長度資訊。在NetStream對象載入flv檔案時會自動調用onMetaData()方法,然後一般在onMetaData方法中讀取flv檔案中的相關資訊。下面代碼用trace語句在調試視窗輸出時間長度資訊。

 控制播放點:

用NetStream對象的seek()方法,根據提供的參數定位視頻的播放位置,但是在即時下載過程中設定的參數不能超過緩衝的資料長度。

 縮放視頻:

Video對象的videoWidth和videoHeight是唯讀屬性,返回當前視頻的顯示大小,要修改其大小可以通過改變Video對象的width和height屬性來實現。

設定緩衝:

用NetStream對象的bufferTime屬性來設定視頻播放前應該緩衝的視頻長度,即必須在緩衝夠bufferTime的資料後才會開始播放。如果不設定,則預設設定為0.1s。bufferLength是NetStream的一個唯讀屬性,返回已經緩衝的資料長度,因此用bufferLenght/bufferTime來顯示已經緩衝的比率。NetStream對象的bytesLoaded和bytesTotal屬性來顯示視頻檔案已經下載的總長。

添加濾鏡效果:

用Video對象的filters屬性來設定視頻的顯示效果。

暫停:

用NetStream對象的pause()函數來暫停播放。

停止:

用NetStream對象的close()函數來停止播放,預設會清楚緩衝,如果要再次播放就要再次下載,然而如果瀏覽器緩衝有資料則可能播放的是瀏覽器緩衝的內容,如果要重新下載播放可以採用如下方法:

videoStream.play("video.flv?uniqueIndex=" + (new Date(  )).getTime(  ));

清除顯示:

當你關閉一個NetStream對象時,video對象並不會自動清除螢幕顯示而會一直保留最後一幀映像,只有在刪除Video對象或調用Video對象的clear()方法後才會清除螢幕。

var client:Object = new Object(  );client.onMetaData = function(metadata:Object):void {    trace(metadata.duration);};videoStream.client = client;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.