我正在开展一个项目,其中包含从3D环境的maya渲染的飞行短片。我编写了一个swf,将剪辑加载为 FLV 并相应地播放它们。
我目前的剧本似乎有时会在FLV播放期间轰炸,永远不会恢复。 swf大小 1280x720 且 1500 bitrate ,但剪辑非常小。通常在 1mb 下,我在播放之前预加载所有的flv。这是我的剧本的三部曲:
function playFLV(fileName) {
var netConnection:NetConnection = new NetConnection();
netConnection.connect(null);
var netStream:NetStream = new NetStream(netConnection);
VideoHolder.MainVideo.attachVideo(netStream);
// Status Events
netStream.onStatus = function(infoObject:Object) {
// Status Codes
tracer.text = infoObject.code;
switch (infoObject.code) {
// StartPlay
case "NetStream.Play.Start":
// Do some stuff
break;
// StopPlay
case "NetStream.Buffer.Empty":
// Do some stuff
break;
}
}
// Play
if(netStream.bytesLoaded==netStream.bytesTotal ) {
netStream.setBufferTime(2); // I tried playing with the buffer time but nadda
netStream.play("flv/"+fileName);
}
}
我想知道是否有更有效的方法来做到这一点。 我想的可能是将每个帧框架化为SWF文件并使用loadMovie。
我们非常感谢任何想法。
答案 0 :(得分:0)
您是否考虑将FLV服务器端合并为一个FLV?如果您的源FLV都具有相同的CODEC和CODEC参数,我想您甚至可以动态地执行此操作。
我还会花更多的时间来解决你遇到问题的原因。
这些都是我在你的问题中没有看到的细节,我会问自己。