在 AS3 中使用 rtmp 是否需要任何额外的代码。
我有这样的代码。这对于 rtmp 或任何其他所需的代码是否足够?
var strSource:String = "rtmp://myserver.com/file.flv";
var ncConnection = new NetConnection();
var nsStream = new NetStream(ncConnection);
nsStream.play(strSource);
在 AS3 中使用 rtmp 是否需要任何额外的代码。
我有这样的代码。这对于 rtmp 或任何其他所需的代码是否足够?
var strSource:String = "rtmp://myserver.com/file.flv";
var ncConnection = new NetConnection();
var nsStream = new NetStream(ncConnection);
nsStream.play(strSource);
播放 RTMP 流需要与渐进流不同。
首先,您需要连接到应用程序,通常这是基本路径,但有时可能是一些文件夹,以防 RTMP 服务器提出不同的服务。
然后你需要监听NetConnection.Connect.Success
事件派发的NetConnection
事件。
连接 NetConnection 后,您可以NetStream
在其上创建一个,然后播放流。
请注意,传递给 play 命令的参数应该只是流的名称,而不是完整路径。通常您还需要删除扩展名(取决于服务器和服务)。对于 H264 流,您可能还需要在流 id 前加上“mp4:”。
例子 :
// rtmp://myserver.com/service/myVideo.flv
var service:String = "rtmp://myserver.com/service/";
var streamID:String = "myVideo"; // or mp4:myVideo for H264
var netConnection:NetConnection;
var netStream:NetStream;
netConnection = new NetConnection();
netConnection.client = {onBWDone:onNetConnectionBWDone};
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
netConnection.connect(service);
// NetConnection status handlers
function netStatusHandler( event:NetStatusEvent ):void
{
if(event.info.code == NetConnection.Connect.Success)
{
netStream = new NetStream(netConnection);
netStream.client = {onMetaData:onMetaData, onPlayStatus :onPlayStatus};
netStream.play(streamID);
}
}
function onNetConnectionBWDone():void{}
// NetStream Status handlers
function onMetaData(o:Object):void{}
function onPlayStatus(o:Object):void{}