我只是花了一整天时间来解决这个问题而且我害怕我错过了什么。
我的S3服务器上有一个简单的mov / mp4文件,带有AVC编码,我有一个应该播放它的swf文件。我找到了2种方法,如here所述。
第一个是:
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.play("http://url.path/movie.mov");
这样可行,但看起来它下载了视频,一旦完成,它就会开始播放。
为了将它用于视频流,它说要使用它:
nc.connect("http://url.path/");
var ns:NetStream = new NetStream(nc);
ns.play("movie.mov");
此代码在NetStream ctor中失败了:
ArgumentError:错误#2126:必须连接NetConnection对象。
问题:
THX。
答案 0 :(得分:0)
对于你的两种方法:
您的服务器需要被告知要传输该mime类型(我没有S3的经验,但它可能已经设置了常见的视频类型)或者您的文件类型不是支持的流式传输类型(MOOV atom -meta data-位于文件的末尾而不是start。使用Adobe Media Encoder(或将此数据放在文件开头的其他编码程序)重新编码为.mp4(h.264编码)或.f4v(或.flv)。
这适用于流媒体服务器(Flash Media Server),因此您需要输入媒体服务器的地址:例如。 “RTMP://媒体服务器/应用/ streamName中”。
答案 1 :(得分:0)
如果文件在播放开始前完全下载,可能是因为元数据位于视频的末尾。
尝试使用qt-faststart(或在线搜索预编译的二进制版本)将此元数据移动到文件的开头。