如何从Actionscript 3.0中同时播放多个视频剪辑。

| 我正在尝试制作一个小型多媒体播放器,其中至少有9个我要放置和播放的小型视频剪辑,这些视频剪辑均由AS 3.0控制。 它甚至可能超过9个剪辑,但它们会在9个地方随机显示。电影也可以切换视口。 我会将它们全部预加载到缓冲区中,我想同时随机播放它们。 这意味着可能会有9个大小相等的区域显示小电影剪辑,包括声音和随机时间。 像这样: [1] [2] [3] [4] [5] [6] [7] [8] [9] 因此,它的1个Flash画布/播放器同时显示了所有内容。 这是可能的,还是会使Flash崩溃以播放9部电影及其声音?电影的长度可能不同,必须重设并播放多次,但是我无法将结果预渲染为根据用户输入随机生成的结果。 在这里,任何精通AS 3.0的专家都可以为我提出这个想法的正确方向? 编辑 就像...从哪里开始的示例代码?我一直在想我可以将所有部分放到一个\“ sprite movie \”中,然后将每个\“ window \”的帧放到XYZ帧中-但不确定如何或是否会起作用……也不是最好的方法。     
已邀请:
我认为这是不可能的。您创建9个视频对象,并且需要9个NetStreams。您设置了一个计时器来分别开始每个视频。 因此,最简单的方法是在一个数组中有9个flv名称,在一个数组中有9次。然后创建一个循环,在其中创建9个视频对象,将它们排列成矩阵,然后使用超时在特定时间启动每个对象。 我能想到的最简单最短的代码如下:
//we use the same flv now
var flvs:Array = [\"filename.flv\", \"filename.flv\", \"filename.flv\", \"filename.flv\", \"filename.flv\", \"filename.flv\", \"filename.flv\", \"filename.flv\", \"filename.flv\"];

//setting the times in milliseconds
var times:Array = [0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000];

//creating a NetConnection
var nc:NetConnection = new NetConnection();

//connect null, the flv is in the same folder and a simple file loading
nc.connect(null);

//the loop
for(var i:int = 0; i < times.length; i++)
{
    var ns:NetStream = new NetStream(nc);

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

    //i%3 and int(i/3) arranges them in a 3x3 matrix
    video.x = (i%3) * video.width;
    video.y = int(i/3) * video.height;

    video.attachNetStream(ns);

    //the tricky timeout to call the funcion playFlv, in times[i] time, for the specific nc NetStream to play the given flvs[i] flv
    flash.utils.setTimeout(playFlv, times[i], ns, flvs[i]);
}

function playFlv(ns:NetStream, flv:String):void
{
    ns.play(flv);
}
    
是的,这绝对是可能的。当然,您将需要尽可能优化视频。 Pine Point网站对此有先例,(您必须导航到“货架期”部分,然后点击“下一步”几次才能看到它)一次正在播放12个视频,所有长度不同。就构建它而言,它与播放一个视频没有什么不同,只需重复执行步骤X次即可。 希望对您有所帮助,     

要回复问题请先登录注册