我的自定义电影播放器使用以下代码播放视频。剪辑开始播放需要很长时间,但一旦完成,您可以直接跳到最后。 我有一种感觉,我在缓冲和预加载的工作方式中缺少一些知识。有人能把我送到正确的方向吗?
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
答案 0 :(得分:0)
显然视频不是流媒体,因为我需要在它们上运行QT FastStart。 这解决了问题,netstream现在按预期运行。
答案 1 :(得分:0)
您可以下载qt-faststart.exe
,然后下载admin命令promt run:
qt-faststart.exe "source.mp4" "fixed.mp4"
长达10分钟的视频大约需要15-30秒。 信用:https://articulate.com/support/article/mp4-movie-doesnt-begin-playing-until-it-has-fully-downloaded
我也试过这个免费的开源转换器HandBrake并检查了Web Optimized
。 (花了10分钟转换)