カメラを選ぶ

var cam:Camera = Camera.getCamera();

すると標準のカメラが選ばれるが

Camera.getCamera("0");

とすると0番目のカメラが使える
なぜかインデックスをstringで渡す。謎仕様。

trace(Camera.names[0]);

で0番目のカメラの名前がわかる。これはstringで返ってくる。

Videoインスタンスにするのはこんな感じ

var cam:Camera = Camera.getCamera();
cam.setMode(CAM_WIDTH, CAM_HEIGHT ,12,true);// 12FPS
cam.setQuality(0, 100);
var camVideo:Video = new Video(CAM_WIDTH, CAM_HEIGHT);


fl.controls.ComboBoxを使ってカメラを選ぶUIを作った。
camera select

var camComboBox:ComboBox = new ComboBox();
addChild(camComboBox);
camComboBox.width = 170;
for (var i:int = 0; i < Camera.names.length; i++) { // コンボボックスにカメラの名前を入れる
	var item:Object = new Object();
	item.label = Camera.names[i];
	camComboBox.addItem(item);
}
camComboBox.addEventListener(Event.CHANGE, function() { // コンボボックスの選択要素が変わったときのイベント
	cam = Camera.getCamera(camComboBox.selectedIndex.toString()); // カメラ切り替え
	camVideo.attachCamera(cam);
});

ComboBoxのaddItemでなぜかlabelプロパティを持ったオブジェクトを要求されるのでObjectで突っ込んでみた。