初步注意事項:我使用haxe編寫和編譯代碼。haxe/flash:Camera.getCamera()按名稱返回null
情況如下:我在同一臺機器上最多有四臺攝像機,我需要分別捕獲它們。 flash.media.Camera.getCamera()取一個名字,我想這是我想要定位的相機的名字。我從flash.media.Camera.names數組中獲取名稱。
是否真的有可能捕獲目標相機或只會始終得到系統默認值? flash.media.Camera.names列出了所有連接的相機,所以我真的希望我可以單獨針對它們。
下面是有問題的代碼。
class Capture {
static function main(){
var mc:flash.display.MovieClip = flash.Lib.current;
var i:Int = 0;
trace(flash.media.Camera.names);
for(camera in flash.media.Camera.names){
trace(camera);
trace(Type.typeof(camera));
var xpos = 490;
var ypos = 10;
var rawvideo:flash.media.Video = new flash.media.Video(480, 360);
var cam:flash.media.Camera = flash.media.Camera.getCamera(camera);
trace(cam);
cam.setMode(640, 480, 30);
cam.setQuality(0, 100);
rawvideo.attachCamera(cam);
rawvideo.scaleX = -1;
switch(i){
case 0:
case 1:
xpos += 490;
case 2:
ypos += 370;
case 3:
xpos += 490;
ypos += 370;
}
i++;
rawvideo.x = xpos;
rawvideo.y = ypos;
if (cam != null){
var videoContainer:flash.display.MovieClip = new flash.display.MovieClip();
videoContainer.addChild(rawvideo);
mc.addChild(videoContainer);
} else {
trace("No Camera");
}
}
}
}
有一定的道理。我有一個名稱陣列,如[Logitech Cam,Logitech Cam,Logitech Cam#2]。所以這個名字並不是一個獨特的標識符。但它必須是索引的字符串,這很奇怪:) – thgie