加载NetStream视频时出现问题

4
我一直在为Web创建自定义视频播放器。在某些机器上运行时,它会开始加载.flv文件,然后在30秒到一分钟内没有任何进展,然后显示视频已完全加载。我正在使用Event.ENTER_FRAME中的bytesLoaded / bytesTotal检查已加载了多少内容。当单独跟踪时,似乎在显示完全加载时,bytesTotal值会更改为当前bytesLoaded值,导致我的视频播放器注册我的加载百分比为1。我已经跟踪了NetStatus event.code值,没有更新显示出现任何错误。我只得到一个NetStream.Play.Start NetStream.Buffer.Full,然后它会等待并重置字节总值。
所以我想问的是,有没有办法解决这个问题?

当你说“没有进展”时,是指进度条还是实际的加载?你是否使用Firebug / Activity Monitor / Charles Proxy等监视了加载过程?此外,你将缓冲区设置为多少?你是手动暂停/开始播放,还是缓冲区满时自动播放? - Theo.T
这似乎是与搜索功能超出缓冲量有关的问题。虽然只在某些机器上发生,但通过更新显卡和FlashPlayer,问题就不再出现了。加上更严格的控制搜索命令可以发出的位置以及动态改变缓冲区以适应不同的连接速度,该问题已经在我测试过的所有机器上消失了。感谢您回复我。这是一个奇怪的问题,我无法在更新后再次一致地重现它。 - Snikk
2个回答

1

这个问题似乎没有具体的答案。我之后尝试了解决方案,并且得到了两个教训。

1)通过不允许netstream类尝试通过bytesLoadedbytesTotalbufferTime属性超过已加载点来编写代码,可以绕过大多数缺陷。这可以确保您永远不会允许尝试寻找可能引起问题的时间。

2)始终允许以前的搜索尝试完成并正确处理它,然后再尝试发送另一个搜索请求。


0

你是否正在播放一个moov原子(例如元数据)在文件末尾的mp4文件?如果是这样,Flash无法播放该文件,直到整个文件加载并能够读取元数据。

这个工具可以修复你的视频文件: http://renaun.com/blog/code/qtindexswapper/


我熟悉moov规范。视频的初始播放是由接收到的元数据触发的,因此不可能是那个问题。在这种情况下播放的视频是使用On2 VP6编解码器的FLV文件,该文件的元数据位于文件开头。问题出现在播放期间加载视频时进行寻址。如果尝试在已加载点之后进行寻址,则会出现问题。 - Snikk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接