Webカメラの指定
2009.7.7 火曜日
Macに内蔵されているiSight(Webカメラ)を、Flashから直接指定しようとすると、Camera.getCamera(”2”); ってしないといけないのは標準仕様?しっくりこないけどみんなはどうしているんだろう?
下のは、押されたキーボードの数字をIDにして、接続されているWebカメラの映像を切り替えるプログラム。起動時は “0″ を指定しています。指定したIDのカメラがない場合は無視。
package {
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import flash.media.Camera;
import flash.media.Video;
[SWF(width=160, height=120, backgroundColor="#FFFFFF", frameRate=30)]
public class Test extends Sprite {
private var video:Video;
public function Test():void {
//カメラ設定
SetCamera(0);
//リスナー登録
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
}
//カメラ設定
private function SetCamera(_id:uint):void {
//カメラ取得
var camera:Camera = Camera.getCamera(String(_id));
//カメラがある場合
if (camera != null) {
//カメラのサイズ、fpsを設定
camera.setMode(160, 120, 30);
//CameraとVideoを関連付け
video = new Video(camera.width, camera.height);
video.attachCamera(camera);
//ステージに追加
this.addChild(video);
}
}
//キーボードが押された場合
private function KeyDown(e:KeyboardEvent):void {
//ID設定
var id:uint;
if (e.keyCode >= 48 && e.keyCode <= 57) {
id = e.keyCode - 48;
}
else if (e.keyCode >= 96 && e.keyCode <= 105) {
id = e.keyCode - 96;
}
//カメラ設定
SetCamera(id);
}
}
}
Posted by tmdf|ActionScript