2

我正在使用 Wowza 开发一个一对一的视频聊天应用程序。远程客户端停止发布后,我将断开传入的 NetStream。这是我的代码的要点:

incomingStream = new NetStream(netConnection);
incomingStream.addEventListener(NetStatusEvent.NET_STATUS, incomingStreamHandler);
incomingStream.play("media");

private function incomingStreamHandler(event:NetStatusEvent):void
{
    trace(event.info.code);
    if (event.info.code == "NetStream.Play.UnpublishNotify")
    {
        incomingStream.close();
        incomingStream.removeEventListener(NetStatusEvent.NET_STATUS, incomingStreamHandler);
        incomingStream = null;
    }
}

这是问题所在:在 NetStream.Play.UnpublishNotify 事件触发并关闭传入流后,我收到以下运行时错误:

Error #2044: Unhandled NetStatusEvent:. level=error, code=NetStream.Play.StreamNotFound

如果我在上面的incomingStreamHandler() 中注释掉removeEventListener() 行,我会看到NetStream.Play.UnpublishNotify 后面是NetStream.Play.StreamNotFound。但是为什么即使在我关闭传入的 NetStream 之后这个事件仍然会触发?

(最初,我在 NetStream.Play.StreamNotFound 而不是 NetStream.Play.UnpublishNotify 上断开传入流,但我发现前一个事件并不总是触发,所以我想依赖 NetStream.Play.UnpublishNotify 代替。)

4

1 回答 1

0

尝试移动:incomingStream.removeEventListener(NetStatusEvent.NET_STATUS,incomingStreamHandler);

在跟踪(event.info.code);

我希望它有效...

于 2013-03-27T23:05:53.390 回答