簡體   English   中英

Flash / ActionScript 3:將.FLV文件加載到MovieClip中並開始播放該FLV文件

[英]Flash / ActionScript 3: Load .FLV file into a MovieClip and start playing that FLV file

如何將FLV文件加載到MovieClip中(讓我們調用實例“flvPlaceHolder”)並開始播放該FLV文件..使用ActionScript 3?

沒有明確回答你的問題,但是野外有許多開源FLV播放器。 我通過抓住其中一個並看到他們如何處理播放視頻來解決問題。

FPlayer將是一個很好的起點。 這是正在做這項工作的班級 這是相當直接的,但使用這樣的項目可能會節省你一些時間。

這個代碼片段應該以非常簡單的方式完成:

var vid:Video = new Video(320, 240);
addChild(vid);

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

var ns:NetStream = new NetStream(nc);
vid.attachNetStream(ns);

var listener:Object = new Object();
listener.onMetaData = function(evt:Object):void {};
ns.client = listener;

ns.play("externalVideo.flv");

從這里

要在本地執行此操作 - 將以下代碼剪切並粘貼到Flash文件的第一幀中。 當然最后更改名稱。

stage.displayState = StageDisplayState.FULL_SCREEN; 

var connection:NetConnection = new NetConnection();
var stream:NetStream;
var video:Video = new Video(1280,960);
var metaObj:Object = new Object();

function onMetaData(data:Object):void
{

}

connection.connect(null);
stream = new NetStream(connection);
stream.client = metaObj;
metaObj.onMetaData = onMetaData;
video.attachNetStream(stream);
addChild(video);
stream.play("name_of_flv.flv");
video.x = 0;
video.y = 0;
var video:Video = new Video();
addChild(video);

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

var ns:NetStream = new NetStream(nc);
ns.client = {};
ns.client.onMetaData = ns_onMetaData;
ns.client.onCuePoint = ns_onCuePoint;
ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");

video.attachNetStream(ns);

function ns_onMetaData(item:Object):void {
    trace("metaData");
    // Resize video instance.
    video.width = item.width;
    video.height = item.height;
    // Center video instance on Stage.
    video.x = (stage.stageWidth - video.width) / 2;
    video.y = (stage.stageHeight - video.height) / 2;
}

function ns_onCuePoint(item:Object):void {
    trace("cuePoint");
    trace(item.name + "\t" + item.time);
}

正如subha指出的那樣,它使用NetStream類完成...但是,特別是那個類很難處理,並且與語言的其余部分非常不一致......

我強烈建議你使用一些庫,類或組件來包裝它。 與Flash中的所有其他內置組件相比,Flash中的FLVPlayback組件(沒有任何外觀)非常簡單易用;)

var flvPlaceHolder:MovieClip = new MovieClip();    

var vid:Video = new Video(320, 240);
flvPlaceHolder.addChild(vid);
addChild(flvPlaceHolder);
flvPlaceHolder.x = stage.stageWidth/2-vid.width/2;
flvPlaceHolder.y = stage.stageHeight/2-vid.height/2;

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

var ns:NetStream = new NetStream(nc);
vid.attachNetStream(ns);

var listener:Object = new Object();
listener.onMetaData = function(evt:Object):void {};
ns.client = listener;

ns.play("mario.flv");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM