我已经搜索了一段时间,要么我的谷歌功能很弱,要么还没有容易找到的答案。。。
我正在使用NetStream从任何地方流式传输视频文件。NetStream未连接到任何服务器。这是代码:
// Create new connection and stream
_netCon = new NetConnection();
_netCon.connect(null);
_netStream = new NetStream(_netCon);
_netStream.client = this;
_netStream.play(url);
// Configure video layer
_videoLayer.attachNetStream(null);
_videoLayer.attachNetStream(_netStream);
_videoLayer.width = stage.stageWidth;
_videoLayer.height = stage.stageHeight;
当然,这基本上是有效的,但视频总是只有在满载时才开始播放。它也只在那时传递元数据。但使用NetStream的主要原因是,您可以在视频完全加载之前播放视频。
我试着玩bufferTime属性,但没有用。还要确保在加载视频时没有缓存。我总是通过在url后面添加一些"?bla=date"值来加载"new one"。
"真正的"流媒体是否可能只有在真正连接到服务器时才能工作?还是我错过了什么?
它可能正在等待元数据——.h264视频就是这样。我从来没有听说它被修复过,所以,可能不是。如果这是你要播放的文件,可以使用ffmpeg之类的东西将元数据移动到文件的开头,但如果不是,你可以尝试使用URLStream
自己流式传输,然后通过appendBytes()
将其馈送到NetStream
(后来我没有尝试,但理论上应该是可能的)。
Flash在FLV中支持的设置非常自由,但我不确定它是否是100%。至于netConnection,这是非常标准的,除非你支持流媒体视频。您只是在寻找一种播放解决方案,它可以缓冲,然后立即播放视频,而不是等待整个FLV加载。这也是netstream对象最基本的操作。在不查看完整代码的情况下,我可以告诉您NetStream是非常有缺陷和特别的。这可能是因为你做的每件事都是对的,但顺序有点错误。或者,您正在收听不存在的事件,因为NetStream使用回调。
以下是我写的两篇博客文章,深入探讨了NetStream和视频问题,以及我上次为解决这些问题所做的工作。它们可能会揭示你的设置在哪里误入歧途。
NetStream吸
流媒体视频播放器
要清理:
问题确实出在我们视频文件中元数据的位置上。我们暂时没有解决这个问题,因为我们有更重要的问题。但我们将回到这一点,将元数据位置移动到视频文件的开头。
谢谢你的帮助!