Flash NetStream.play+video.attachNetStream不会显示任何视频
我是Flash编程新手。我想做的就是将我的本地网络摄像头传输到我的red5服务器,然后在另一个视频中接收数据 因此,我编写了以下代码:Flash NetStream.play+video.attachNetStream不会显示任何视频,flash,streaming,red5,netstream,netconnection,Flash,Streaming,Red5,Netstream,Netconnection,我是Flash编程新手。我想做的就是将我的本地网络摄像头传输到我的red5服务器,然后在另一个视频中接收数据 因此,我编写了以下代码: NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0; client_nc = new NetConnection(); client_nc.objectEncoding = flash.net.ObjectEncoding.AMF0; clie
NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
client_nc = new NetConnection();
client_nc.objectEncoding = flash.net.ObjectEncoding.AMF0;
client_nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
client_nc.connect("rtmp://localhost/myApp/");
function netStatusHandler(e:NetStatusEvent):void
{
var code:String = e.info.code;
//log.info("code = " + code);
if (code == "NetConnection.Connect.Success")
{
cam_ns = new NetStream(client_nc);
cam_ns.attachCamera(camera);
cam_ns.attachAudio(mic);
cam_ns.publish("user_2", "live");
in_ns2 = new NetStream(client_nc);
in_ns2.play("user_2");
video2 = new Video(640, 480);
video2.attachNetStream(in_ns2);
//in_ns2.play("rtmp://localhost/myApp/user_2");
//in_ns2.play("user_2");
video2.x = 200;
video2.y = 10;
video2.width = 100;
video2.height = 100;
addChild(video2);
}
else
{
trace(code);
}
}
我在1个网络连接上使用2个网络流,然后在第一个网络连接上连接一个cam+mic。
之后,我播放这个NetStream,并尝试在第二个NetStream上附加这个播放,然后在新的视频中播放。然而,这是行不通的
我对as3使用flashdevelop,对red5服务器使用eclipse。有人能帮我吗?对我来说,它是这样工作的:
private function viewStream():void {
var stream:NetStream = new NetStream(nc);
stream.client = new NetStreamClient();
stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
stream.play( streamName.text);
var video:Video = new Video();
video.attachNetStream(stream);
uic.addChild(video);
}
private function asyncErrorHandler(event:AsyncErrorEvent):void {
trace(event.text);
}
其中nc是我的单个全局网络连接,streamName是
<mx:TextInput id="streamName" text="test"/>
uic是一个uic组件
<mx:UIComponent id="uic" width="300" height="250"/>
我从一个按钮调用了viewStream方法
<mx:Button label="view Stream" click="viewStream()"/>
我在视频显示方面也有问题。所以我用UIComponent做了这件事,效果很好。
可能您遇到问题是因为您试图在发布后直接播放ns.play。我想你应该用一个按钮试试,然后在开始发布后等一秒钟。对我来说,它是这样工作的:
private function viewStream():void {
var stream:NetStream = new NetStream(nc);
stream.client = new NetStreamClient();
stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
stream.play( streamName.text);
var video:Video = new Video();
video.attachNetStream(stream);
uic.addChild(video);
}
private function asyncErrorHandler(event:AsyncErrorEvent):void {
trace(event.text);
}
其中nc是我的单个全局网络连接,streamName是
<mx:TextInput id="streamName" text="test"/>
uic是一个uic组件
<mx:UIComponent id="uic" width="300" height="250"/>
我从一个按钮调用了viewStream方法
<mx:Button label="view Stream" click="viewStream()"/>
我在视频显示方面也有问题。所以我用UIComponent做了这件事,效果很好。
可能您遇到问题是因为您试图在发布后直接播放ns.play。我认为您应该在开始发布后用按钮尝试一下,然后等待一秒钟。尝试再创建一个网络连接,并将该连接用于视频播放。您必须将该视频对象作为子对象添加到VideoDisplay。请尝试再创建一个网络连接并使用该连接进行视频播放。您必须将该视频对象作为子对象添加到VideoDisplay。。