Windows Phoneアプリケーション開発入門

第26回 LauncherとChooserを使ってみよう!(2)

この記事を読むのに必要な時間:およそ 4.5 分

はじめに

ローンチ時から対応が予定されていたコピー&ペーストに対応したWindows Phone 7の2011年1月度アップデートが配信されました。予定の1月中には発表もされないまま少し遅れておりヒヤヒヤさせられましたが,きちんとWindows Phone Developer Tools用のアップデートがリリースされてホッとしました。

いつ実機のアップデートが配信されるか楽しみです。この辺りは,Androidの端末アップデート事情と同じように端末メーカー側の対応待ちになっている可能性もあるのではないかと邪推しています。

実機アップデートの話はひとまず置いておきまして,⁠Windows Phone Developer Tools January 2011 Update」の主たるアップデート項目についてご紹介します。

Windows Phone Emulatorのアップデート

コピー&ペーストの対応に伴い,エミュレータにもアップデートが掛かりました。System.Windows.Controls.TextBox,System.Windows.Controls.PasswordBox,Microsoft.Phone.Controls.WebBrowser上で動かした場合にコピー&ペーストが使えます。

Marketplaceに既にリリース済みの開発者の方で,自分のアプリケーションでもコピー&ペーストに対応したTextBoxやPasswordBox,WebBrowserコントロールを使いたいという方は,特にリビルドする必要はありません。

Windows Phone Capability Detection Tool

昔,Marketplaceにアップロードする際に自分でCapability(ネットワークへ接続するアプリケーションであれば,ID_CAP_NETWORKINGなど)を設定する必要があったのですが,現在ではAppHubへの送信時に自動的に付与されるようです。その調査に使うツールが,今回のアップデートから同梱されています。

Bing Maps Silverlight Controlのパフォーマンス改善

Bing Mapsのジェスチャーのパフォーマンスが改善されたそうです。エミュレータ上ではあまり違いが判りませんでしたが,アップデート後の実機でのBing Mapsコントロールを試すのが楽しみですね。

Windows Mobile 6.xでマルチメディア機能を使ってみよう

さて,連載前回は,Windows Mobile,Windows Phone 7のPIM機能に携わる機能に触れました。今回は,LauncherとChooserの中でも,特に静止画撮影や動画再生などといったマルチメディアに関する機能のTipsをご紹介したいと思います。

本題のWindows Phone 7でのLauncher/Chooserの使い方をご紹介する前に,Windows Mobile 6.xにはどんなマルチメディア機能があってどうやって使っていたかをご紹介したいと思います。

静止画/動画を選択する

参照設定からMicrosoft.WindowsMobile.Forms.dllを追加しておきます。

Microsoft.WindowsMobile.Forms名前空間のSelectPictureDialogクラスを利用することで簡単に静止画や動画を選択することができます。SelectPictureDialogは,そのままの名前の通り,選択が完了するまで同期的に処理を行うことが可能です。

var dlg = new Microsoft.WindowsMobile.Forms.SelectPictureDialog();
if (DialogResult.OK == dlg.ShowDialog())
{
    MessageBox.Show(dlg.FileName);
}

上記のコードを実行してみました。いずれかの静止画や動画を選択することでメッセージボックスにファイル名を表示します。

画像

カメラで静止画撮影を行う

カメラを使って静止画撮影を行う方法をご紹介します。

Microsoft.WindowsMobile.Forms名前空間のCameraCaptureDialogクラスを利用することで簡単に静止画撮影を行うことができます。ここでは,ダイアログのタイトルを「Camera Demo」にして,撮影画角をQVGA(320×240)に設定しました。画質は標準に設定しています。

var cameraCapture = new Microsoft.WindowsMobile.Forms.CameraCaptureDialog()
{
    InitialDirectory = "\\My Documents",
    DefaultFileName = "test.jpg",   // デフォルトで付く名前
    Title = "Camera Demo",         // ダイアログのタイトル 
    Resolution = new Size(320, 240),    // 撮影したいサイズ
    StillQuality = Microsoft.WindowsMobile.Forms.CameraCaptureStillQuality.Normal
};

// カメラアプリを起動します
cameraCapture.ShowDialog();

上記のコードを実行してみました。

画像

サンプルコードでは,標準品質の静止画を撮影する設定になっていましたが,高品質の動画を録画したい場合,CameraCaptureDialogのStillQualityプロパティを変更します。設定可能な設定値は以下の通りです。

Default標準のカメラアプリの設定値を使用する
High高品質
Low低品質
Normal標準の品質

以下のように設定します。

// 高品質の画像の設定にする
cameraCapture.StillQuality = CameraCaptureStillQuality.High;

カメラで動画録画を行う

静止画撮影と同様に,Microsoft.WindowsMobile.Forms名前空間のCameraCaptureDialog クラスを利用することで簡単に動画録画を行うことができます。

Modeプロパティには,CameraCaptureMode.VideoWithAudioを設定して映像と音声の両方を録画しています。また,VideoTypesプロパティにCameraCaptureVideoTypes.Messagingを設定し,Eメールに添付可能な品質のビデオ(3GPP)を録画します。

var cameraCapture = new Microsoft.WindowsMobile.Forms.CameraCaptureDialog()
{
    InitialDirectory = "\\My Documents",
    DefaultFileName = "test.3gp",   // デフォルトで付く名前
    Title = "Camera Demo",  // ダイアログのタイトル 
    Resolution = new Size(176, 144),    // 撮影したいサイズ
    VideoTimeLimit = new TimeSpan(0, 0, 15),
    Mode = Microsoft.WindowsMobile.Forms.CameraCaptureMode.VideoWithAudio, // 撮影モード
    VideoTypes = Microsoft.WindowsMobile.Forms.CameraCaptureVideoTypes.Messaging
};

// カメラアプリを起動します
cameraCapture.ShowDialog();

上記のコードを実行してみました。

画像

アテレコする等の目的で音声を録音せずに動画のみ録画したい場合は,CameraCaptureDialogのModeプロパティをCameraCaptureMode.VideoOnlyに変更します。

// ビデオのみ録画するモードに設定する
cameraCapture.Mode = CameraCaptureMode.VideoOnly;

サンプルコードでは,Eメール添付用の動画を録画する設定になっていましたが,高品質の動画を録画したい場合,CameraCaptureDialogのVideoTypesプロパティを変更します。設定可能な設定値は以下の通りです。

AllResolutionプロパティにマッチする画像サイズで録画
MessagingEメールに添付可能な品質のビデオ(3GPP)で録画
Standard最も高品質のビデオで録画

以下のように設定します。

// 高品質の画像の設定にする
cameraCapture.VideoTypes = CameraCaptureVideoTypes.Standard;

著者プロフィール

和田健司(わだけんじ)

1982年10月12日生まれ。大阪で働くプログラマ。Microsoft MVP for Device Application Development(Jul 2010 - Jun 2011)。Windows Mobileに傾倒し今に至る。Windows Mobile向けのTipsを書いています。iPhoneアプリ開発を始めました。嫌いな食べ物はカレー。

URL: http://ch3cooh.jp/
Blog: http://d.hatena.ne.jp/ch3cooh393/

コメント

コメントの記入