我的Flash网站需要播放让我们一个接一个地说10个视频,以减少我需要在视频1播放时预先加载视频2和视频3的等待时间等等...
我需要遵循这种结构,因为在视频结束时,用户将有机会选择下一个(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);
我需要了解预先加载其他两个视频的最佳方式。 1正在播放。
我应该再创建2个链接视频,将它们放在舞台上并在那里加载视频,以便在需要时立即可用吗?
非常感谢你的帮助!
---编辑:在我的帖子中添加了更多细节---
我正在做一些测试来理解这个程序,我尝试了以下内容:
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 ..这是正确的方法吗?
再次感谢
答案 0 :(得分:1)
我相信我找到了方法,这是完整的脚本:
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使用情况也很好。
如果有更专业的方式,我想了解更多。
追踪(“谢谢,很快见到你”);
答案 1 :(得分:0)
实现这一目标的最简单方法是使用Greensock的LoaderMax。您可以设置要加载的视频列表,然后根据用户的操作确定其中一些视频的优先级。
LoaderMax有一些很棒的功能,很难从头开始构建,它还修复了一些奇怪的Flashplayer行为。
有一点学习曲线,但不是太陡。