AdobeAIRでWebカメラから画像を取得してみる

AdobeAIRを使ってWebカメラから画像を取得し、VideoDisplayオブジェクトを使って表示するアプリケーションです。


とりあえず実際に動いているサンプルはこちら!

作ったものを手軽に利用してもらえるのがWebアプリケーションの強みですね・・・。


さて、以下作り方。

FlexBuilderでFlexプロジェクトを新規作成し、"アプリケーションの種類"でWebアプリケーションを選択します。そして出来たプロジェクトのmxmlファイルに以下をコピペ。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initMyCamera()" layout="absolute">
	
	<mx:Script source="mineap/MyCamera.as"/>
	<mx:VideoDisplay x="10" y="10" width="500" height="400" id="videoDisplay"/>
	
	
</mx:Application>

次に、src内にMyCamera.asを作成。(今回はsrc/mineap/MyCamera.asとしました。)
で、作成したASファイルに以下をコピペ。

public function initMyCamera():void
{
	//カメラソースを取得
	var tape:Camera = Camera.getCamera();
	//表示処理
	if ( tape != null ) {
		//カメラのモードを変更
		tape.setMode(500,400,60);
		//カメラをディスプレイに追加
		videoDisplay.attachCamera( tape );
		
	} else {
		//カメラが接続されていないとき
		trace("カメラ無し");
	}
}

で実行してみるとFlashからWebカメラを使い、Webカメラの情報を取得・表示できます。
なお、Macユーザーの方で内蔵のiSightを使おうとしている方はちょっと設定が必要です。(カメラが見つけられないのか、何も表示されません。)

実行しているFlashを右クリックして「設定...」を選んで、

使用するカメラを「DV ビデオ」から「USB Video Class Video」に変更しましょう。

そんなわけで上手く行けばこんな風になります!


もちろんWebアプリケーションに出来る事がデスクトップアプリケーションに出来ない訳が無いので!
NNDD2にWebカメラから録画してアップできる機能を組み込もうかなとか思ってます。