我下载了 red5-recorder ( http://www.red5-recorder.com/ ),但无法开始录制。调试后,我发现需要记录到媒体服务器的网络连接不会触发 NetStatusEvent 事件,因此基本上它会默默地失败。我已经使用以下最小工作示例实现了连接:
trace("make net connection");
nc = new NetConnection();
nc.client = { onBWDone: function():void{ trace("bandwidth check done.") } };
trace("add event listener");
nc.addEventListener(NetStatusEvent.NET_STATUS, function(event:NetStatusEvent) {
trace("handle");
});
trace("connect!");
nc.connect("rtmp://localshost/oflaDemo/test/");
trace("connect done");
这段代码的输出是:
make net connection
add event listener
connect!
connect done
actionscript api 声明连接调用总是触发这样的事件:
此外,调用后 10 秒,网络连接未“连接”(NetConnection 对象的状态)。我还看了这个: 从 SilverLight 调用时,NetConnect 在 Flash 中静默失败 但是作者建议的修复方法,在连接 uri 中交换 rtmp 和 http,不起作用。此外,我在个人项目中测试了 uri,实际上是完全相同的代码片段,它确实有效。我似乎无法找到为什么在 red5-recorder 项目中连接到媒体服务器会静默失败。
尴尬的部分是,如果我将一些随机字符串作为连接 uri 传递,仍然没有任何反应(没有事件、没有异常、没有崩溃)。也没有设置 nc.client becore nc.connect(),这在我的经验中会导致异常,但不会导致异常。
欢迎任何建议。