我有Adobe Media Server 4,我正在使用Flash Professional CS5.5来创建流媒体应用程序。 为了测试,我使用默认的Adobe页面,您可以在其中插入流媒体URL和流名称以连接到流媒体源,以获取概述。 这是启动时的那个页面,你有两个视频块,一个是广播,另一个是看流。
这是AS3代码:
var bandwidth:int = 0;
var quality:int = 50;
var camera:Camera = Camera.getCamera();
camera.setQuality(bandwidth, quality);
camera.setMode(430,320,15, true);
var video:Video = new Video();
video.attachCamera(camera);
addChild(video);
video.width = 430;
video.height = 320;
var nc:NetConnection = new NetConnection();
nc.connect("rtmp://***");
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
function netStatusHandler(event:NetStatusEvent):void{
if (event.info.code == "NetConnection.Connect.Success")
{
label10.text = 'Connected';
var ns:NetStream = new NetStream(nc);
ns.attachCamera(camera);
ns.publish("NewStream1", "live");
}
}
当我运行此文件时,我在label10中获得“已连接”,这意味着它已连接到rtmp服务器链接。
当我在Adobe Default页面中插入这个特定的rtmp链接和NewStream1(来自ns.publish(“NewStream1”,“live”);)时,它不起作用......它连接,但它只显示空白的黑色框。
当我使用该默认页面进行流媒体播放时,左侧广播,它的效果很好。
有人可以帮助我吗,告诉我我做错了什么?
谢谢。
编辑:
另外,当我删除
时会发生奇怪的事情video.attachCamera(camera);
当相机连接到流光时仍有线
ns.attachCamera(camera);
但在相机上点亮,即签署该相机处于活动状态,它会打开1-2秒然后关闭......所以相机在以后没有使用...... 所以它可能是NetStreaming对象的一个问题,因为它拒绝了相机......
答案 0 :(得分:3)
问题是那个
var ns:NetStream = new NetStream(nc);
需要在函数定义之外...因为这样它是函数变量,它在函数结束后被“杀死”......