Actionscript 3 ActionScript 3-实时流媒体:如何侦听多个FMS URL?
有时我有直播服务故障 所有人都完全无助,现场直播突然结束 如果我可以在一个播放器中收听多个音源,它就可以播放新的音源 我不打算一次玩两个,只有一个或多个备份,如果其中一个出现故障,我可以开始使用 我使用这个随机FMS URL RTMP实时流链接作为示例:Actionscript 3 ActionScript 3-实时流媒体:如何侦听多个FMS URL?,actionscript-3,flash,apache-flex,actionscript,adobe,Actionscript 3,Flash,Apache Flex,Actionscript,Adobe,有时我有直播服务故障 所有人都完全无助,现场直播突然结束 如果我可以在一个播放器中收听多个音源,它就可以播放新的音源 我不打算一次玩两个,只有一个或多个备份,如果其中一个出现故障,我可以开始使用 我使用这个随机FMS URL RTMP实时流链接作为示例: rtmp://81.177.35.218/rtp/2 有更多的FMS URL可以工作 另外,如果代码看起来不好,尤其是在元数据(数据)上的公共函数下, 请随意修复和编辑它 这是一个模板,这是我自己编辑的少数几个部分之一 如果回复中包含相同的代
rtmp://81.177.35.218/rtp/2
有更多的FMS URL可以工作
另外,如果代码看起来不好,尤其是在元数据(数据)上的公共函数下,
请随意修复和编辑它
这是一个模板,这是我自己编辑的少数几个部分之一
如果回复中包含相同的代码但经过编辑,我将不胜感激。
我不知道我在做什么
package
{
import flash.accessibility.Accessibility;
import flash.display.Sprite;
import flash.events.*;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.media.Video;
public class nsLive10_7castwesttigerss extends Sprite
{
private var nc:NetConnection;
private var ns:NetStream;
private var video:Video;
public function nsLive10_7castwesttigerss()
{
video = new Video();
addChild(video);
nc = new NetConnection();
nc.objectEncoding = 0;
nc.client=this;
nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onError);
nc.connect('rtmp://81.177.35.218/rtp');
}
private function startStreaming()
{
ns = new NetStream(nc);
ns.client = this;
ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onError);
ns.play("2");
video.attachNetStream(ns);
}
private function onNetStatus(event:NetStatusEvent):void
{
switch(event.info.code)
{
case 'NetConnection.Connect.Success':
trace('NetConnection.Connect.Success');
startStreaming();
break;
default:
trace(event.info.code);
}
}
private function onError(event:AsyncErrorEvent):void
{
trace(event);
}
public function onMetaData(data)
{
for(var i in data){ trace(i + " = " + data[i])}
video.width = data.width;
video.height = data.height;
video.width = stage.stageWidth;
video.height = stage.stageHeight;
video.x = (stage.stageWidth - video.width)/2;
video.y = (stage.stageHeight - video.height)/2;
}
public function onBWDone ()
{
trace("on Bandwidth Done ");
}
}
}
tl;博士
在AS3直播中,您如何使其能够播放来自不同来源和URL的直播流 制作一个播放列表(带有rtmp url的简单数组)并监听NetStream和NetConnection的状态。如果你的状态不好,只需切换到下一个url,以此类推
您可以在此处找到可用状态的完整列表: