【发布时间】:2013-04-04 18:06:15
【问题描述】:
我正在开发一个原型,我必须在其中通过 RTMP 协议播放视频。我的代码如下:
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);
}
}
但它没有播放,没有发生任何错误,也没有运行,如果有人有任何想法,请帮助我。
【问题讨论】:
-
我会在调用
nc.connect之前添加事件处理程序nc.addEventListener,并在onConnectionStatus中添加一些跟踪。 -
我将 nc.addEventListener 放在 nc.connect 之上,但仍然没有任何反应,并且有一个跟踪跟踪(“Creating NetStream”),我在输出中得到了那个跟踪。
-
很高兴您正在获得正在创建的网络流,但这不是您可以获得的唯一消息,请跟踪
e.info.code作为处理程序中的第一行。 -
我将 trace(e.info.code) 放在第一行,它会跟踪“NetConnection.Connect.Success”。但仍然没有发生任何事情。
标签: actionscript-3 flash rtmp flash-player-11