[英]if I load a flv with netStream, how can I call a function when the flv stops playing
我在ActionScript 3中有一個網站,當您按下按鈕時會出現很多FLV動畫。 現在這就是我的設置方法。
在AS3中,使用網絡流即時加載FLv(這是我從After Effects以FLV格式導出的動畫)。 我為動畫設置了一個與動畫(FLV)播放時間相同的時間長度,當計時器停止時,它調用了一個函數,該函數關閉流,打開一個新的視頻,然后播放另一個視頻。 我注意到使用計時器的唯一問題是,如果連接速度很慢並且(動畫)停止了一秒鍾,則計時器會繼續運行,並且過早調用下一個flv。
有沒有人知道在flv播放結束時加載flv或swf的方法? 這樣,下一個FLV將始終在前一個FLV的運行時間結束時播放,而不是使用計時器?
我在想onComplete,但我不知道如何實現!!
使用OSMF框架很容易實現順序播放,您應該檢查一下。 Google的“ osmf教程”,您應該在線上找到一些教程。
該框架是相當新的,但由於它不僅限於視頻,而且還包括音頻和圖像,因此它似乎可能成為Flash中媒體交付的實際解決方案。
作為開發人員,您不必費心NetStream和NetConnection類。 開發視頻解決方案以及音頻和圖像解決方案應簡化並易於處理。 唯一的限制是它需要Flash 10
這是一些用於檢查FLV何時以NetStream結尾的代碼。 我只是提供片段,因為我假設您已經啟動並運行了FLV。
//create a netstream and pass in your connection
var netStream:NetStream = new NetStream(conn);
//add callback function for PlayStatus -event
var client : Object = {};
client.onPlayStatus = onPlayStatus;
netStream.client = client;
//attach your NetStream to the connection as usual
//---
//function that gets called onPlayStatus
function onPlayStatus(info : Object) : void {
trace("onPlayStatus:" +info.code + " " + info.duration);
if (info.code == "NetStream.Play.Complete") {
//play the next FLV and so on
}
}
編輯:用您的示例代碼,它將看起來像這樣。
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
var listener:Object = new Object();
listener.onMetaData = function(md:Object):void{};
listener.onPlayStatus = function(info : Object) : void {
trace("onPlayStatus:" +info.code + " " + info.duration);
if (info.code == "NetStream.Play.Complete") {
//play the next FLV and so on
}
};
ns.client = listener;
vid1.attachNetStream(ns);
const moviename1:String = "moviename2.flv";
const moviename1:String = "moviename3.flv";
var movietoplay:String = "moviename.flv";
ns.play(movietoplay);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.