2013-05-12 196 views
1

嗨我想创建一个简单的AIR 3应用程序,在舞台上显示3个摄像头。出于某种原因,第三个摄像头不想显示,它甚至不打开摄像头上的LED指示灯。AS3多个网络摄像头不显示第3个网络摄像头

我尝试了多个网络摄像头,例如。微软,罗技,建于....

下面的代码不起作用:

var videoWidth:int = 1000/totalCols; 
var videoHeight:int = 800/totalRows; 

for (var i:int = 0; i < Math.min(Camera.names.length, totalRows * totalCols); i++) { 
    var currRow:int = Math.floor(i/totalCols); 
    var currCol:int = i % totalCols; 
    var video:Video = new Video(videoWidth, videoHeight); 
    var cam:Camera = Camera.getCamera(i.toString()); 
    if (cam) { 
     cam.setMode(videoWidth, videoHeight, 30); 
     video.attachCamera(cam); 
     video.x = currCol * videoWidth; 
     video.y = currRow * videoHeight; 
     StageObj.addChild(video); 
    } 
} 

无论是做这个的:

//camera settings 
     track_cam = new Camera(); 
     track_cam = Camera.getCamera("1"); 
     track_cam.setMotionLevel(100); 
     track_cam.setQuality(0, 100); 
     track_cam.setMode(1920, 1080, 30); 

     track_feed = new Video(); 
     track_feed.width = track_cam.width; 
     track_feed.height = track_cam.height; 
     track_feed.smoothing = true; 
     track_feed.attachCamera(track_cam); 

     StageObj.addChild(track_feed); 

     player_one_cam = new Camera(); 
     player_one_cam = Camera.getCamera("2"); 
     player_one_cam.setMotionLevel(100); 
     player_one_cam.setQuality(0, 100); 
     player_one_cam.setMode(200, 200, 30); 

     player_one_feed = new Video(); 
     player_one_feed.width = player_one_cam.width; 
     player_one_feed.height = player_one_cam.height; 
     player_one_feed.smoothing = true; 
     player_one_feed.attachCamera(player_one_cam); 

     StageObj.addChild(player_one_feed); 
     player_one_feed.x = 500; 
     player_one_feed.y = 500; 

     player_two_cam = new Camera(); 
     player_two_cam = Camera.getCamera("0"); 
     player_two_cam.setMotionLevel(100); 
     player_two_cam.setQuality(0, 100); 
     player_two_cam.setMode(200, 200, 30); 

     player_two_feed = new Video(); 
     player_two_feed.width = player_two_cam.width; 
     player_two_feed.height = player_two_cam.height; 
     player_two_feed.smoothing = true; 
     player_two_feed.attachCamera(player_two_cam); 

     StageObj.addChild(player_two_feed); 

是否有摄像头的数量有限制你可以在AS3中使用?

回答

0

看起来它应该从文档工作:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html#getCamera()

名:字符串(默认值= null) - 指定要获取哪一个摄像头, 由names属性返回的数组确定。对于大多数 应用程序,请通过省略此参数来获取默认摄像机。若要为 指定此参数的值,请使用Camera.names数组内从零开始的索引位置的字符串表示形式 。例如, 示例中,指定阵列中的第三个摄像头,请使用 Camera.getCamera(“2”)

+0

我认为它可能是与USB端口有关的东西...如果我在笔记本电脑的一侧插入两个相机在其他两个相互之间,其中一个将无法工作... – user2075503 2013-05-13 07:55:06

+0

是啊,你可能会跑步由于提供给USB端口的电源,可能会尝试通电的USB集线器,看看它是否有帮助。 – shaunhusain 2013-05-13 09:02:38

+0

我通过设置camera.setMode(200,200,30)得到它的工作;如果我增加凸轮的大小,第三个网络摄像头无法打开... – user2075503 2013-05-13 10:24:42

3

似乎我用完了USB带宽,当它在开始工作的单独机器上使用USB3时。