我没有自己的Flash Media Server。但是,我可以使用Highwinds CDN。他们在CDN上运行FMS。当您安排直播活动时,Highwinds会为您提供两个网址:“服务器”和“流名称”。 例子:
服务器: RTMP://fli003.am4.hwcdn.net/XXXX/ definst
流名称: FLI / 00000-streamName中encoderuser = XXX&安培; encoderpassword = YYY
可以将这两个网址粘贴到Flash Media Live Encoder应用程序中以流式传输直播活动。 Flash Media Live Encoder中的相应字段名称为“FMS URL”和“Stream”。
我现在已经成功建立了与FMS服务器的连接(我认为?)。 问题是:流没有在网上显示,似乎没有提交给CDN。
function onStatus(e:NetStatusEvent):void {
trace(e.info.code);
switch(e.info.code) {
case "NetConnection.Connect.Success":
var ns:NetStream = new NetStream(conn);
ns.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
var camera = Camera.getCamera();
camera.setLoopback(true);
camera.setQuality( 0, 100 );
camera.setMode(640, 480, 25)
var mic = Microphone.getMicrophone();
if (camera != null){
myVid.attachCamera(camera);
ns.attachCamera(camera);
// ns.play();
}
if (mic != null) {
ns.attachAudio(mic);
}
ns.publish("fli/00000-streamname?encoderuser=XXX&encoderpassword=YYY", "live");
break;
//...
}
}
var conn:NetConnection = new NetConnection();
conn.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
conn.connect("rtmp://fli003.am4.hwcdn.net/XXXX/_definst_");
//var counter:int = 0;
//conn.onBWDone = function(kbitDown:Number, deltaDown:Number, deltaTime:Number, latency:Number){ };
NetConnection.prototype.onBWDone = function(p_bw) {
//trace("onBWDone: "+p_bw);
}
NetConnection.prototype.onBWCheck = function() {
//return ++counter;
}
smil文件在那里,但我怀疑没有数据到达服务器。 播放器仅显示加载动画。
我现在得到一个额外的
NetStream.Failed NetStream.InvalidArg NetStream.InvalidArg 成功连接后。不知道那个错误来自哪里。
答案 0 :(得分:2)
check the NetStraem.publish()
reference:
//...
conn = new NetConnection();
conn.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
conn.connect('rtmp://fli003.am4.hwcdn.net/XXXX/definst');
//...
private function onStatus(e:NetStatusEvent):void {
switch(e.info.code) {
case "NetConnection.Connect.Success":
ns = new NetStream(conn);
ns.attachCamera(camera);
ns.publish("fli/00000-name?encoderuser=XXX&encoderpassword=YYY", "live");
break;
//...
}
}