Tôi đang làm việc trên mẫu thử nghiệm mà tôi phải phát video thông qua giao thức RTMP. Mã của tôi là như sau:Làm cách nào để phát video RTMP qua netConnection và netStream
private function init():void
{
streamID:String = "mp4:myVideo";
videoURL = "rtmp://fms.xstream.dk/*********.mp4";
vid = new video();
vid.width = 480;
vid.height = 320;
nc = new NetConnection();
nc.client = {onBWDone: function():void
{
}};
nc.addEventListener(NetStatusEvent.NET_STATUS, onConnectionStatus);
nc.connect(videoURL);
}
private function onConnectionStatus(e:NetStatusEvent):void
{
if (e.info.code == "NetConnection.Connect.Success")
{
trace("Creating NetStream");
netStreamObj = new NetStream(nc);
netStreamObj.client = new CustomClient();
netStreamObj.play(streamID);
vid.attachNetStream(netStreamObj);
addChild(vid);
intervalID = setInterval(playback, 1000);
}
}
private function playback():void
{
trace((++counter) + " Buffer length: " + netStreamObj.bufferLength);
}
class CustomClient
{
public function onMetaData(info:Object):void
{
trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate);
}
public function onCuePoint(info:Object):void
{
trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
}
}
Nhưng nó không chơi, không xảy ra bất kỳ lỗi và không miệt mài, Nếu ai có bất kỳ ý tưởng, hãy giúp tôi.
tôi sẽ thêm xử lý sự kiện 'nc.addEventListener' trước khi gọi' nc.connect', cũng đặt một số dấu vết trong 'onConnectionStatus'. –
Tôi đặt nc.addEventListener lên trên nc.connect, nhưng vẫn không có gì xảy ra và có dấu vết ("Tạo NetStream"), tôi nhận được dấu vết đó trong đầu ra của mình. – Vipul
Tốt là bạn đang tạo luồng mạng nhưng đó không phải là thư duy nhất bạn có thể nhận được, theo dõi 'e.info.code' làm dòng đầu tiên trong trình xử lý. –