我的自定义电影播放器使用以下代码播放视频。剪辑开始播放需要很长时间,但是一旦开始播放,您就可以直接跳到最后。我有一种感觉,在缓冲区和预加载的工作原理方面,我缺少一些知识。有人可以派我去正确的迪雷西恩吗?
private function init(e:Event = null):void {
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, doNetStatus);
connection.addEventListener(IOErrorEvent.IO_ERROR, doIOError);
connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, doSecurityError);
connection.connect(null);
stream = new NetStream(connection);
stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, doAsyncError);
stream.addEventListener(NetStatusEvent.NET_STATUS, doNetStatus);
stream.addEventListener(IOErrorEvent.IO_ERROR, doIOError);
stream.client = this;
video = new Video(1024, 576);
mc = new MovieClip();
mc.addChild(video);
stage.addChild(mc);
mc.addEventListener(MouseEvent.CLICK, onClick);
video.attachNetStream(stream);
stream.bufferTime = 5;
stream.receiveAudio(true);
stream.receiveVideo(true);
stream.play(SITEURL + vidID +".mp4");
}
您可以在此处看到播放器的运行情况:http://joon.be/serve/ngjd_player.swf
显然视频没有流式传输,因为我需要在它们上运行 QT FastStart。这解决了问题,netstream 现在按预期运行。
您可以下载qt-faststart.exe
,然后在管理命令中运行:
qt-faststart.exe "source.mp4" "fixed.mp4"
15-30 分钟长的视频大约需要 10 秒。信用:https://articulate.com/support/article/mp4 电影不会开始播放,直到完全下载
我还尝试了这个免费的开源转换器手刹,并检查了Web Optimized
。(转换花了整整 10 分钟(