Flash / ActionScript 3:将.FLV文件加载到MovieClip中并开始播放该FLV文件

时间:2009-06-28 21:52:45

标签: flash actionscript-3

如何将FLV文件加载到MovieClip中(让我们调用实例“flvPlaceHolder”)并开始播放该FLV文件..使用ActionScript 3?

5 个答案:

答案 0 :(得分:4)

没有明确回答你的问题,但是野外有许多开源FLV播放器。我会通过抓住其中一个并看到他们如何处理播放视频来解决问题。

FPlayer将是一个很好的起点。正在开展工作的Here is the class。这是相当直接的,但使用这样的项目可能会节省你一些时间。

这个片段应该以非常简单的方式完成这个技巧:

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");

from here

答案 1 :(得分:2)

要在本地执行此操作 - 将以下代码剪切并粘贴到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;

答案 2 :(得分:1)

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

答案 3 :(得分:1)

正如subha所指出的那样,它使用NetStream类完成了......但是,特别是那个类很难处理,并且与语言的其余部分非常不一致......

我强烈建议你使用一些库,类或组件来包装它。与Flash中的所有其他内置组件相比,Flash中的FLVPlayback组件(没有任何外观)非常简单易用;)

答案 4 :(得分:0)

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");