Windows Phone 7(Mango)でFlashlight、QRコード、AR(Augmented Reality)のサンプル

これまでのWindows Phone 7ではカメラにアクセスすることができなかったのでARのようにカメラのデータを利用するアプリを作成することができませんでした。
一部ではMicrosoft.Phone.Media.Extended.dllを利用した方法が出回っていましたがこのdllは正式のものではないのでそのdllを利用したアプリはマーケットプレースの審査を通ることはありませんでした。
そこでWindows Phone 7の時期バージョンのMangoからはカメラデータに直接アクセスできるようになったことから、Flashlight、QRコードの認識、AR(Augmented Reality)のプログラミングが可能となりました。MangoのバージョンアップによってカメラへのアクセスがAPIとして提供されるのでカメラを利用したアプリを開発できるようになります。
そこで今回は3つのサンプルを作成しました。これらのサンプルはMicrosoft.Phone.Media.Extended.dllを使ったサンプルを元にし今回追加されたAPIに置き換えたものがほとんどです。ARに関してはAugmented Mango - SLARToolkit for Windows Phoneを参考にしています。

1.Flashlight

カメラをフラッシュさせるには、PhotoCameraのFlashModeをOnにしてFocusメソッドを呼び出します。これだと一時的に明るくなるだけなので、Focusが終わったと同時にもう一度Focusメソッドを呼び出すことで継続的にフラッシュさせています。

2.QRコード

カメラのデータに直接アクセスしQRコードの解析を行います。メソッドの再帰呼び出しにより常にQRコードを解析し見つかったらメッセージボックスで表示します。ARのデモではDispatcherTimerを使っているのであまりにも動作が遅い場合はDispatcherTimerで時間を遅らせたほうがよいと思います。QRコードの解析にはZXing(Zebra Crossing)を利用しています。

3.AR

カメラのデータに直接アクセスしマーカーを見つけ出します。見つかったらその位置にマンゴーの画像が表示されます。基本的にはQRコードソースコードとほぼ同じで、解析を行うループにDispatcherTimerを使っています。また、マーカーを見つけるにはSLARToolkitを利用し、3Dの表示にはMatric3DExを利用しています。
ソースコードCameraSamples.zip 直
(まだベータ段階ですので今回使用しているAPIは変更の可能性があります。)