NetStream仅在完全加载时播放

时间:2012-02-09 12:24:15

标签: flash actionscript-3 video stream netstream

我一直在寻找这个问题,而且我的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属性,但无济于事。 还要确保加载视频时不涉及缓存。我总是通过在网址后添加一些“?bla = date”值来加载“新的”。

“真正的”流媒体只有在真正连接到服务器时才有效吗?或者我错过了其他什么?

3 个答案:

答案 0 :(得分:2)

它可能正在等待元数据 - 这肯定是.h264视频的情况。我从来没有听说它是固定的,所以,可能不是。如果这是您尝试播放的文件,请使用类似ffmpeg的内容将元数据移动到文件的开头,但如果不是 - 您可以尝试使用URLStream自行播放,然后将其提供给{{ 1}}通过NetStream(后来我没试过,但理论上应该可以)。

答案 1 :(得分:1)

Flash在FLV中支持的设置非常宽松,但我不确定它是100%。至于netConnection,除非你支持流视频,否则这是非常标准的。您只是在寻找缓冲的播放解决方案,然后立即播放视频,而不是等待整个FLV加载。这也是netstream对象最基本的操作。在没有查看完整代码的情况下,我可以告诉您NetStream非常错误且非常特别。可能是你正在做的一切正确,但顺序错误。或者您可能正在侦听不存在的事件,因为NetStream改为使用回调。

这是我写的两篇博文,更深入地介绍了NetStream和Video问题,以及我上次为解决这些问题所做的工作。他们可能会说明你的设置误入歧途。

NetStream Sucks

Streaming Video Player

答案 2 :(得分:0)

要清理:

问题确实在我们视频文件中元数据的位置。由于我们有更重要的问题,我们暂时没有解决这个问题。但我们将回过头来,将元数据位置移动到视频文件的开头。

感谢您的帮助!