WebCameraを買って来た。とりあえず、AIRで試してみよう!
カメラからの映像を写すだけ
こんなコードだけで、Webカメラの動作確認くらいは出来てしまいます。というか実際これで動作確認しました。そもそも動画チャット云々より、 「AIRでなんか出来そうだ」と言う目的で買ってきたので、正しく突き進んでいます。
Main.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
applicationComplete="init();" resize="resize();">
<mx:Script>
<![CDATA[
import flash.media.Camera;
import flash.media.Video;
private var vid:Video = null;
private function init():void
{
var cam:Camera = Camera.getCamera();
if ( cam )
{
vid = new Video();
vid.attachCamera(cam);
campanel.addChild(vid);
resize();
}
}
private function resize():void
{
if ( vid )
{
vid.width = campanel.width;
vid.height = campanel.height;
}
}
]]>
</mx:Script>
<mx:UIComponent id="campanel" width="100%" height="100%"/>
</mx:WindowedApplication>
何か荒い・・・静止画では判りませんが、コマ数も遅い気がします。
カメラのモードを設定する
カメラが対応していれば、「setMode()」で設定が可能です。→詳細:http://livedocs.adobe.com/flex/3_jp/langref/flash/media/Camera.html#setMode()
記述は、「public function setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void」となっており、 まぁ見れば判るでしょう(ぉ
判りにくいのは最後のフラグで、これは「指定したモードがカメラにない場合に、近似設定をさがす方法」を指定するものです。
・・・イマイチな説明ですね(ぉぃ
- 真に設定すると、解像度を優先的にカメラの近似モードを探します。
これは、例えば「640x480(30fps)」の設定をした時の動作を考えて見ましょう。
もし、カメラの仕様が「320x240(30fps)、640x480(15fps)」だった場合、解像度が近い「640x480(15fps)」が設定される事になります。
- 偽に設定すると、フレームレートを優先的ににカメラの近似モードを探します。
例えば「640x480(30fps)」の設定をするとします。
もし、カメラの仕様が「320x240(30fps)、640x480(15fps)」だった場合、フレームレートが近い「320x240(30fps)」が設定される事になります。
コードを以下のように変更しました。
private function init():void
{
var cam:Camera = Camera.getCamera();
if ( cam )
{
cam.setMode(640, 480, 30);
vid = new Video();
vid.attachCamera(cam);
campanel.addChild(vid);
resize();
}
}
それなりの画質に。静止画では判りませんが、コマ数も増え動画としてスムーズになりました。
そもそも「var cam:Camera = Camera.getCamera();」でカメラを取得した時、デフォルトとなる設定は、必ずしもカメラが(スペックとして)推奨している値にはならないという事です。アプリケーションから明示的に画質を指定してやる必要が在るようです。
雑感
これでリアルタイム画像認識の実験が出来るかなぁ・・・と風呂敷を広げて見る。調子に乗って、マイクによる外部入力もやってみようかと調査したところ・・・
AIR 1.5(FlashPlayer10.0?)では、生データを直接扱えないと判明しました。 AIR 2.0(FlashPlayer10.1)以降での新機能と公に宣伝していますので、コレ以前のバージョンでは無理と言うことですね。
→参考:http://www.adobe.com/jp/joc/air2/beta/
2.0β・・・そろそろ調査を開始する必要が在るようで・・・

コメントする