我正在使用 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 代替。)