我已经寻找了一段时间了,要么是我的google-fu太弱了,要么就是还没有简单的答案……
我正在使用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“值来加载一个”新的“。
有没有可能“真正的”流只有在真正连接到服务器时才能工作?或者我还漏掉了什么?
发布于 2012-03-07 19:21:58
要弄清楚,请执行以下操作:
问题确实存在于我们的视频文件中的元数据的位置。我们暂时没有解决这个问题,因为我们有更重要的问题。但我们将回到这一点,将元数据位置移动到视频文件的开头。
谢谢你的帮助!
发布于 2012-02-09 21:50:45
它可能在等待元数据-这肯定是.h264视频的情况。我从来没听说过它被修好了,所以,很可能不是。如果这就是你想要播放的文件,使用类似于ffmpeg的东西来将元数据移动到文件的开头,但如果不是这样,你可以尝试自己使用URLStream流式播放,然后通过appendBytes()将其提供给NetStream (后者我没有尝试过,但理论上应该是可行的)。
发布于 2012-02-09 21:22:23
Flash在FLV中支持的设置非常自由,但我不确定它是否为100%。至于netConnection,这是非常标准的,除非你支持流媒体视频。您只是在寻找一种可以缓冲,然后立即播放视频的播放解决方案,而不是等待加载整个FLV。这也是netstream对象最基本的操作。不看你的完整代码,我可以告诉你,NetStream是非常错误和特殊的。也许你做的每件事都是正确的,但顺序稍有错误。或者,您可能正在侦听不存在的事件,因为NetStream使用回调。
这是我写的两篇博客文章,深入探讨了NetStream和视频问题,以及我上次为解决它们所做的事情。它们可能会为您的设置误入歧途提供一些线索。
NetStream Sucks
Streaming Video Player
https://stackoverflow.com/questions/9210777
复制相似问题