エクスポート (0) 印刷
すべて展開

方法: Windows Phone のカメラ キャプチャ タスクを使用する

2012/02/09

ユーザーはカメラ キャプチャ タスクを使用し、組み込みのカメラ アプリケーションを使用してアプリケーションから写真を撮ることができます。ユーザーがタスクを完了すると、イベントが発生し、イベント ハンドラーが結果で写真を受け取ります。

セレクターを使用して、Windows Phone プラットフォーム全体で一貫したユーザー エクスペリエンスを提供できます。詳細については、「Windows Phone でのランチャーとセレクターの概要」を参照してください。

注注:

Windows Phone OS 7.1 以降では、アプリケーションでデバイスのカメラを直接使用することができます。詳細については、「Windows Phone のカメラと写真の概要」を参照してください。

Windows Phone Emulator にはカメラがありませんが、エミュレーターはアプリケーションに既定のイメージを返します。物理デバイスでカメラ キャプチャ タスクをテストするには、接続ツールを使用して、アプリケーションを起動します。詳細については、「方法: Windows Phone の Connect Tool を使用する」を参照してください。

カメラ キャプチャ タスクを使用するには

  1. コードに次のステートメントを追加します。

    using Microsoft.Phone.Tasks;
    
  2. タスク オブジェクトを宣言します。ページのスコープが必要であるため、ページ内のコンストラクターの前で宣言します。

    CameraCaptureTask cameraCaptureTask;
    
  3. ページのコンストラクターに次のコードを追加します。このコードはタスク オブジェクトを初期化し、ユーザーがタスクを完了した後に実行するメソッドを識別します。

    cameraCaptureTask = new CameraCaptureTask();
    cameraCaptureTask.Completed += new EventHandler<PhotoResult>(cameraCaptureTask_Completed);
    
  4. ボタン クリック イベント内など、必要に応じてアプリケーションに次のコードを追加します。この手順をテストするには、ページのコンストラクターにこのコードを配置します。これはタスクを起動するコードです。

    try
    {
        cameraCaptureTask.Show();
    }
    catch (System.InvalidOperationException ex)
    {
        MessageBox.Show("An error occurred.");
    }
    
  5. ページに完了イベント ハンドラーのコードを追加します。このコードは、ユーザーがタスクを完了した後に実行されます。結果は、イメージ データを含むストリームを公開する PhotoResult オブジェクトです。写真イメージのストリームを操作する方法については、「Windows Phone のカメラと写真」を参照してください。

    void cameraCaptureTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            MessageBox.Show(e.ChosenPhoto.Length.ToString());
    
            //Code to display the photo on the page in an image control named myImage.
            //System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
            //bmp.SetSource(e.ChosenPhoto);
            //myImage.Source = bmp;
        }
    }
    

表示:
© 2014 Microsoft