Upload
ch3cooh-393
View
1.308
Download
5
Embed Size (px)
DESCRIPTION
2011年6月9日に開催されたWindow Phone Developer DayのコミュニティLTにてお話しさせて頂きました。
Citation preview
Windows Phone 搭載のセンサーを活用しよ
う!CH3COOH( 酢酸 )
自己紹介• 和田 健司 aka CH3COOH• 東京でスマートフォンアプリ開発をやって
います (iPhone, Android, WM6.x, WP7)• ブログ: http://d.hatena.ne.jp/ch3cooh393/• サイト : http://ch3cooh.jp/
• ネットで検索する時は「酢酸 WP7 」で。
おさらい• Windows Phone OS 7.0 のデバイス必要要項
(メーカーが搭載しないといけないセンサー)– 加速度センサー– 環境光センサー– 接近センサー– Assisted GPS– FM ラジオチューナー
多彩なセンサーデバイス
• ユーザー視点– 端末側のハードウェア仕様を一律にすること
で、どの端末を使っていても同じ操作感で快適
• 開発者視点– 一部のセンサーにアクセスすることが可能– Windows Phone “Mango” でアクセス出来る
センサーが追加されました
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
SENSOR
センサーがより使いやすく
• SensorBase<T> から派生したクラスでセンサークラスのインターフェースが統一された
メンバーCurrentValue センサーの現在値を取得CurrentValueChanged 値が変わった時に通知されるTimeBetweenUpdates 値の更新間隔の設定 / 取得Start センサーから値を取得開始Stop センサーから値を取得終了
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();
Windows Phone Emulator
• Mango の Windows Phone Emulator では、Accelerometer と Loaction のテストが出来る様になりました
CAMERA
カメラでより詳細な制御が可能に
• カメラデバイスの制御が可能になりました– プレビュー中のフレーム取得 (ARGBA, YCbCr)– オートフォーカス– フラッシュの設定– 静止画撮影
• カメラデバイスを使用するには、 WMAppManifest.xml に権限を追加します– ID_CAP_ISV_CAMERA
PhotoCamera クラス
メンバーFlashMode フラッシュのモードの設定 / 取
得IsFlashModeSupported フラッシュモードのサポート有
無Focus / CancelFocus オートフォーカスの開始 / 停止
AutoFocusCompleted オートフォーカスの完了イベント
ButtonHalfPressButtonFullPressButtonRelease
カメラボタンの半押し、全押し、リリース
PhotoCamera クラス
メンバーGetPreviewBufferArgb32
プレビューフレームを ARGB32で取得
GetPreviewBufferYGetPreviewBufferYCrCb
プレビューフレームを YCbCr で取得
エミュレータでのカメラ
• エミュレータ上では、 PhotoCamera を扱う事は出来ますが、表示は真っ白な状態になっています。
まとめ
まとめ• “Mango” になって使えるセンサーが追加• 新しく増えたセンサーは、 SensorBase を
ベースクラスにしていて、インターフェースが統一
• カメラの詳細な制御がアプリ側から可能に
• プレビューフレームを RGB 、 YCbCr 形式で扱える事で、 AR アプリや画像の編集が容易に