1

有时我NetStatusEvent在使用NetConnection连接到 Red5 服务器时会遇到问题:

Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.Failed

这就是我连接的方式(唯一NetConnection.connect()被调用的地方):

public function Connect(callBack:Function = null):void 
{
    if (IsConnected())
    {
        if (callBack != null) 
        {
            callBack.call();
        }
    }
    else // Not connected
    {
        netConnect.addEventListener(NetStatusEvent.NET_STATUS, function(e:NetStatusEvent):void
        {
            // OnConnect called whenever there is a net status event
            OnConnect(e, callBack);
            netConnect.removeEventListener(NetStatusEvent.NET_STATUS, arguments.callee);
        });

        try
        {
            // Attempt to connect to Media Server
            netConnect.connect(MEDIA_SERVER_URI, true);
        }
        catch(error:Error)
        {
            logger.LogError("NetConnection.connect threw an exception.", error);
        }
    }
}

我正在为NetStatusEvent.NET_STATUS. 有时我的听众打电话怎么可能?

4

3 回答 3

1

您正在处理程序中删除您的侦听NetStatusEvent器。您应该保留它,直到连接关闭。这就是为什么NetStatusEvent在它的监听器被移除之前只处理一次。除了第一个事件之外的任何其他事件都会引发该错误。

所以删除netConnect.removeEventListener(NetStatusEvent.NET_STATUS, arguments.callee);

NetConnection调度该事件相当多,具体取决于正在发生的事情。您必须处理该事件,直到每次。有关该info属性的可能值列表,请访问此链接。还有一个小例子说明如何在页面末尾处理事件。

于 2013-07-12T07:33:15.280 回答
1

如果您的客户端不处理 onBWCheck 或 onBWDone 方法,您可能会看到这一点。如果您打开了带宽检测,也会发生这种情况;通过更改 red5.properties 文件中的此参数在服务器上将其关闭,然后重新启动服务器。

rtmp.bandwidth_detection=false
于 2013-07-14T05:49:34.183 回答
1

块引用

只是一个额外的信息。使用 info.level = "error" 调度 NetStatusEvent 对象将始终引发未处理的异常。它是一个特殊的用例。例如,我包装了所有这些功能并将级别更改为“信息”,然后再重新调度事件。

于 2013-12-07T18:25:30.770 回答