0

AS3 で rtmp を使用するために追加のコードが必要ですか。

私はこのようなコードを持っています。rtmp やその他の必要なコードにはそれで十分ですか?

var strSource:String = "rtmp://myserver.com/file.flv";
var ncConnection = new NetConnection();
var nsStream = new NetStream(ncConnection);
nsStream.play(strSource);
4

1 に答える 1

3

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{}
于 2010-03-31T15:39:53.673 に答える