Настройки для RTMP и AS 3.0 - PullRequest
       10

Настройки для RTMP и AS 3.0

0 голосов
/ 31 марта 2010

Есть ли необходимость в дополнительном коде для использования rtmp с AS3.

У меня есть такой код. Этого достаточно для rtmp или любого другого кода, необходимого?

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

1 Ответ

3 голосов
/ 31 марта 2010

Воспроизведение потоков 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{}
...