Flash AS3加载视频,而另一个正在播放



我的flash站点需要一个接一个地播放10个视频,为了减少等待时间,我需要在播放视频1时预加载视频2和视频3,以此类推…

我需要遵循这个结构,因为在视频1结束时,用户将有机会选择下一个(2或3)。

所有的代码都在我电影的第一帧上,我仍然需要学习课程、包等。

第一个视频是通过链接视频(myVideo)播放的,我把它放在舞台上,代码如下:

var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
ns.play("video1.f4v");
var myVideo:Video = new Video();
myVideo.attachNetStream(ns);
addChild(myVideo);

我需要了解在播放nr.1时预加载其他两个视频的最佳方式。

我应该再创建两个链接的视频,把它们放在舞台外,然后在那里加载视频,以便在需要时立即可用吗?

非常感谢你的帮助!

---编辑:在我的帖子中添加了更多细节---

我正在做一些测试来理解这个过程,我尝试了以下方法:

var ns2:NetStream = new NetStream(nc);
var ns3:NetStream = new NetStream(nc);
ns2.play("video/video2.f4v");
ns2.pause();
ns2.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
ns3.play("video/video3.f4v");
ns3.pause();
ns3.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);

它是有效的,但以这种方式加载2部电影将导致100%的cpu使用率和较差的视频播放帧率。。。也许我必须加载视频2,检查加载是否完成,然后开始加载视频3…这是正确的方法吗?

再次感谢

我相信我找到了方法,下面是完整的脚本:

var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
ns.play("video1.f4v");
var myVideo:Video = new Video();
myVideo.attachNetStream(ns);
addChild(myVideo);
var ns2:NetStream = new NetStream(nc);
var ns3:NetStream = new NetStream(nc);
function statusHandler(event:NetStatusEvent):void
{
switch (event.info.code)
{
case "NetStream.Play.Start" :
ns2.play("video/video2.f4v");
ns2.pause();
ns2.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
ns3.play("video/video3.f4v");
ns3.pause();
ns3.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
break;
case "NetStream.Play.Stop" :
trace("ns video stop");
break;
}
}

当我调用ns.play("video2.f4v")时;视频已经在浏览器缓存中,因此立即开始播放,Cpu的使用看起来也很好。

如果有更专业的方式,我想学习更多。

trace("谢谢,很快见");

实现这一点的最简单方法是使用Greenstock的LoaderMax。您可以设置要加载的视频列表,然后根据用户的操作对其中一些视频进行优先级排序。

LoaderMax有一些很好的功能,很难从头开始构建,它还修复了Flashplayer的一些奇怪行为。

有一点学习曲线,但并不太陡。

相关内容

最新更新