【问题标题】:How to make multiple videoclips play simultaneous from Actionscript 3.0如何从 Actionscript 3.0 使多个视频剪辑同时播放
【发布时间】:2011-04-13 23:30:13
【问题描述】:

我正在尝试制作一个小型多媒体播放器,其中至少有 9 个我想放置和播放的小视频剪辑 - 全部由 AS 3.0 控制。

它甚至可能超过 9 个剪辑,但它们会在 9 个位置随机显示。电影也可以切换视口。

我会将它们全部预加载到缓冲区中,并且我想同时随机播放它们。

这意味着可能有 9 个大小相等的区域显示包含声音和随机时间的小影片剪辑。

像这样:

[1][2][3]

[4][5][6]

[7][8][9]

所以它的 1 个 Flash 画布/播放器同时显示它们。

这是可能的,还是会导致 Flash 播放 9 部电影(包括它们的声音)时崩溃?电影的长度可能不同,并且必须重置和播放多次,但我无法预渲染结果,因为它是从用户输入中随机生成的。

这里有任何敏锐的 AS 3.0 大师,谁能为我指出这个想法的正确方向?

编辑

喜欢...从哪里开始的示例代码?我一直在想,我可以将所有部分放入一个“精灵电影”中,并为每个“窗口”从帧 XYZ 播放 - 但不确定它如何或是否会起作用......也没有什么最好的方法。

【问题讨论】:

    标签: actionscript-3 video flash multimedia


    【解决方案1】:

    我认为这是不可能的。您创建 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);
    }
    

    【讨论】:

    • 看起来不错,我会尝试并将其标记为有用的答案。谢谢!
    【解决方案2】:

    是的,这绝对是可能的。当然,您将希望尽可能优化您的视频。在Pine Point 网站上有这样的先例,(你必须导航到“保质期”部分,然后点击“下一步”几次才能看到它)它一次播放 12 个视频,所有不同的长度.就构建而言,它与播放一个视频没有什么不同,只需将步骤重复 X 次即可。

    希望对你有帮助

    【讨论】:

    • 不是一个答案,你只是说它是可能的而不提供任何参考代码,只是指出它是可能的事实。评论会更好。
    • “这里有哪位敏锐的 AS 3.0 大师可以为我指出这个想法的正确方向吗?”会直接暗示他正在以动作脚本的形式寻求帮助。 Actionscript 被称为代码。
    • 任何猴子都会告诉你这是可能的,你需要一位 AS3 大师来告诉你这是如何可能的。
    • Pine Point 网站很有趣,是的,而且灵感也很好,但我仍然需要看看如何使用 AS 3.0 代码“做到这一点”……还没有视频方面的经验。
    猜你喜欢
    • 2018-08-10
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多