У меня нет собственного Flash Media Server.Однако я могу использовать CDW Highwinds.Они запускают FMS на своих CDN.Когда вы планируете прямое событие, Highwinds дает вам два URL: «сервер» и «имя потока».Примеры:
сервер: rtmp: //fli003.am4.hwcdn.net/XXXX/definst
имя потока: fli / 00000-streamname? Encoderuser= XXX & encoderpassword = ГГГ
Эти два URL-адреса могут быть вставлены в приложение Flash Media Live Encoder для потоковой передачи события в реальном времени.Соответствующими именами полей в Flash Media Live Encoder являются «URL-адрес FMS» и «Поток».
Теперь я успешно установил соединение (я думаю?) С сервером 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 после успешного подключения.Не знаю, откуда появилась эта ошибка.