17
Windows Phone 搭搭搭 搭搭搭搭搭搭搭搭搭搭CH3COOH( 搭搭 )

20110609 windows phone 搭載のセンサーを活用しよう!

Embed Size (px)

DESCRIPTION

2011年6月9日に開催されたWindow Phone Developer DayのコミュニティLTにてお話しさせて頂きました。

Citation preview

Page 1: 20110609 windows phone 搭載のセンサーを活用しよう!

Windows Phone 搭載のセンサーを活用しよ

う!CH3COOH( 酢酸 )

Page 2: 20110609 windows phone 搭載のセンサーを活用しよう!

自己紹介• 和田 健司 aka CH3COOH• 東京でスマートフォンアプリ開発をやって

います (iPhone, Android, WM6.x, WP7)• ブログ: http://d.hatena.ne.jp/ch3cooh393/• サイト : http://ch3cooh.jp/

• ネットで検索する時は「酢酸 WP7 」で。

Page 3: 20110609 windows phone 搭載のセンサーを活用しよう!

おさらい• Windows Phone OS 7.0 のデバイス必要要項

(メーカーが搭載しないといけないセンサー)– 加速度センサー– 環境光センサー– 接近センサー– Assisted GPS– FM ラジオチューナー

Page 4: 20110609 windows phone 搭載のセンサーを活用しよう!

多彩なセンサーデバイス

• ユーザー視点– 端末側のハードウェア仕様を一律にすること

で、どの端末を使っていても同じ操作感で快適

• 開発者視点– 一部のセンサーにアクセスすることが可能– Windows Phone “Mango” でアクセス出来る

センサーが追加されました

Page 5: 20110609 windows phone 搭載のセンサーを活用しよう!

RTW と Mango の比較センサー Windows Phone RTW Windows Phone Mango

加速度 YES YES

A-GPS YES YES

マイク YES YES

カメラ YES YES

電子コンパス NO Optional

ジャイロ NO Optional

モーション NO Optional

FM ラジオ YES YES

Page 6: 20110609 windows phone 搭載のセンサーを活用しよう!

SENSOR

Page 7: 20110609 windows phone 搭載のセンサーを活用しよう!

センサーがより使いやすく

• SensorBase<T> から派生したクラスでセンサークラスのインターフェースが統一された

メンバーCurrentValue センサーの現在値を取得CurrentValueChanged 値が変わった時に通知されるTimeBetweenUpdates 値の更新間隔の設定 / 取得Start センサーから値を取得開始Stop センサーから値を取得終了

Page 8: 20110609 windows phone 搭載のセンサーを活用しよう!

SensorBase を継承したセンサークラス

• SensorBase を継承してるセンサークラス– Microsoft.Devices.Sensors.Accelerometer– Microsoft.Devices.Sensors.Compass– Microsoft.Devices.Sensors.Gyroscope– Microsoft.Devices.Sensors.Motion

• センサーからデータを取得するのは簡単– var motion = new Motion();

motion.TimeBetweenUpdates = TimeSpan.FromMilliseconds(20);motion.CurrentValueChanged += motion_CurrentValueChanged;motion.Start();

Page 9: 20110609 windows phone 搭載のセンサーを活用しよう!

Windows Phone Emulator

• Mango の Windows Phone Emulator では、Accelerometer と Loaction のテストが出来る様になりました

Page 10: 20110609 windows phone 搭載のセンサーを活用しよう!

CAMERA

Page 11: 20110609 windows phone 搭載のセンサーを活用しよう!

カメラでより詳細な制御が可能に

• カメラデバイスの制御が可能になりました– プレビュー中のフレーム取得 (ARGBA, YCbCr)– オートフォーカス– フラッシュの設定– 静止画撮影

• カメラデバイスを使用するには、 WMAppManifest.xml に権限を追加します– ID_CAP_ISV_CAMERA

Page 12: 20110609 windows phone 搭載のセンサーを活用しよう!

PhotoCamera クラス

メンバーFlashMode フラッシュのモードの設定 / 取

得IsFlashModeSupported フラッシュモードのサポート有

無Focus / CancelFocus オートフォーカスの開始 / 停止

AutoFocusCompleted オートフォーカスの完了イベント

ButtonHalfPressButtonFullPressButtonRelease

カメラボタンの半押し、全押し、リリース

Page 13: 20110609 windows phone 搭載のセンサーを活用しよう!

PhotoCamera クラス

メンバーGetPreviewBufferArgb32

プレビューフレームを ARGB32で取得

GetPreviewBufferYGetPreviewBufferYCrCb

プレビューフレームを YCbCr で取得

Page 14: 20110609 windows phone 搭載のセンサーを活用しよう!

エミュレータでのカメラ

• エミュレータ上では、 PhotoCamera を扱う事は出来ますが、表示は真っ白な状態になっています。

Page 15: 20110609 windows phone 搭載のセンサーを活用しよう!

まとめ

Page 16: 20110609 windows phone 搭載のセンサーを活用しよう!

まとめ• “Mango” になって使えるセンサーが追加• 新しく増えたセンサーは、 SensorBase を

ベースクラスにしていて、インターフェースが統一

• カメラの詳細な制御がアプリ側から可能に

• プレビューフレームを RGB 、 YCbCr 形式で扱える事で、 AR アプリや画像の編集が容易に

Page 17: 20110609 windows phone 搭載のセンサーを活用しよう!