Flex Builderを初めて使う方のためのサンプルです。
Webカメラで撮影し、それをリアルタイムに表示したり、定期的に静止画を撮影したりできます。
(簡単にするため、エラー処理等は省いてあります)
Flex Builderを起動→Flexプロジェクトでプロジェクトを作成し、mxmlファイルを書くだけで作れます。
簡単で良いですね。
this.addChild() ではなく、this.stage.addChild() を使うあたりは、注意が必要です。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Button x="20" y="295" label="これを押すと撮影開始" click="init()"/>
<mx:Button x="159" y="295" label="画質UP" click="quality()" />
<mx:Image x="159" y="144" width="236" height="143" id="myimage" scaleContent="true" />
<mx:Script>
<![CDATA[
private var camera:Camera = null;
public var video:Video = null;
/**
* カメラを初期化する
*/
public function init():void {
//カメラを初期化する
camera = Camera.getCamera();
if (camera == null) {
trace("ERROR");
return;
}
trace("Camera OK");
video = new Video();
video.attachCamera(camera);
//ビデオを表示する
video.width = 240;
video.height = 180;
this.stage.addChild(video);
video.x = 10;
tick();
}
/**
* たまに呼ばれて、キャプチャした画像を表示する
*/
private function tick():void {
setTimeout(tick, 1000); //1秒後にまた呼ぶ
if (video == null || camera == null || camera.muted) {
return;
}
//静止画をキャプチャする
var bd:BitmapData = new BitmapData(320, 240);
bd.draw(video);
var bmp:Bitmap = new Bitmap(bd);
myimage.source = bmp;
}
/**
* カメラの画質を向上させる
*/
private function quality():void {
if (video != null && camera != null && !camera.muted) {
camera.setMode(640, 480, 60);
}
}
]]>
</mx:Script>
</mx:Application>