as3 中的音频流重新连接

Audio stream reconnect in as3

我在使用 Flash CS6 创建的 swf 中使用以下代码:

var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
var customClient:Object = new Object();
ns.client = customClient;
ns.play("http://streamserver3.us:7018/stream?type=.flv");

它播放 Icecast 音频流。 我怎样才能自动重新连接(如果互联网连接断开等)?

非常感谢您的帮助!

此致

看看这些 NetStreamInfo 选项是否可以帮助您检测连接中断:

尝试使用每 秒触发一次的计时器,其中响应函数检查是否有变化(即:传入[=26= 的数量] 数据已变为零)。

也许与 ns.info.dataBytesPerSecond 核对,但在链接的信息 Class 中探索其他方法的描述。使用 If 语句检查输入没有变为零或 Else(如果现在为零)运行 重新连接的函数(通常 ns.stop(); & ns.play( url ); 等..).

非常感谢您的帮助。我找到了一个有效的解决方案,我想分享一下:

var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
var customClient:Object = new Object();
ns.client = customClient;
ns.play("http://xxxxxxxxx/stream?type=.flv");

ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
function netStatusHandler(event:NetStatusEvent):void
{
switch (event.info.code)
{
case 'NetStream.Play.Stop' :
MovieClip(this.root).gotoAndPlay(1, "Scene 2");
break;
case "NetStream.Play.StreamNotFound" :
MovieClip(this.root).gotoAndPlay(1, "Scene 2");
break;
}
}

我使用以下代码创建了一个新场景"Scene 2":

MovieClip(this.root).gotoAndPlay(1, "Scene 1");

现在如果流(互联网或服务器连接)丢失,播放器将自动重新连接到流。

干得好!

非常感谢您的意见!

此致