Windows Phone のカメラと写真の概要

2012/02/09

このトピックでは、Windows Phone 用のカメラと写真に関する開発作業の概要を示します。また、ここで示すトピックに重点を置いて説明します。

重要な注重要な注:

Windows Phone OS 7.1 の機能を使用するために、Windows Phone OS 7.0 アプリケーションをアップグレードした場合、カメラ機能 ID_CAP_ISV_CAMERA はアプリケーション マニフェスト ファイル WMAppManifest.xml に自動的に追加されません。ID_CAP_ISV_CAMERA がないと、カメラ API を使用したアプリケーションは機能しません。新しい Windows Phone OS 7.1 プロジェクトで、この機能はアプリケーション マニフェスト ファイルに含まれます。

Windows Phone はデバイスのカメラへのプログラムによるアクセスをサポートしており、開発者がアプリケーションを作成するための豊富な API が用意されています。機能の一部を次に示します。

  • ビューファインダーを備えたカメラ アプリケーションを作成し、静止写真をキャプチャする

  • カメラからの未加工のフレームに対するリアルタイム アクセスを提供する

  • キャプチャされた写真の解像度を調整する

  • フォーカスやフラッシュなどの機能を実装する

  • フラッシュなどのデバイスのカメラ機能を検出および照会する

  • 写真のキャプチャやオートフォーカスのトリガーのために、カメラのハードウェア シャッター ボタンにアクセスする

カメラはすべての Windows Phone デバイスで必須というわけではありません。アプリケーションを設計および実装する際には、この点を考慮する必要があります。アプリケーションでは、常に、カメラが利用できるかどうかを確認し、利用できない場合は適切にエラーを処理する必要があります。

アプリケーションで CameraCaptureTask セレクターを使用して、Windows Phone の組み込みのカメラ機能をアプリケーションに組み込むこともできます。詳細については、「Windows Phone のセレクター」を参照してください。

次の図に、Windows Phone のカメラ アプリケーションのレイアウトの例を示します。このサンプルを作成する手順については、「方法: Windows Phone 用の基本的なカメラ アプリケーションを作成する」を参照してください。

AP_Con_CameraAnatomy

Windows Phone では、アプリケーション開発用の充実した API セットと、デバイスでのカメラと写真のエクスペリエンスを拡張する機能拡張ポイントをサポートしています。機能の一部を次に示します。

  • マネージ API を使用して写真をデコードおよびエンコードする

  • メディア ライブラリへの画像の保存などのタスクを、アプリケーションで実行できるようにする

  • アプリ コネクトを使用して Windows Phone 組み込みのフォト アプリケーションを拡張する

  • アプリ コネクトを使用して Windows Phone の Pictures ハブを拡張する

  • 写真のエクスペリエンスを拡張して写真を Web サービスにアップロードする

Windows Phone アプリケーションでカメラを使用するには、アプリケーション マニフェスト ファイルにカメラ機能 (ID_CAP_ISV_CAMERA) を追加する必要があります。この機能宣言により、アプリケーションでカメラが使用されていて選択できることが、エンド ユーザーに通知されます。通常、この機能は、新しい Windows Phone アプリケーション プロジェクトのアプリケーション マニフェスト ファイルに自動的に追加されます。ただし、Windows Phone OS 7.0 アプリケーションをアップグレードしている場合は、カメラ機能はアプリケーション マニフェスト ファイルに自動的には追加されません。

アプリケーションが前向きカメラを使用するように明示的に設計されている場合は、前向きカメラ機能 (ID_HW_FRONTCAMERA) を追加する必要があります。アプリケーションで前向きカメラが必要な場合はこれを使用します。たとえば、前向きカメラがなくては役に立たない "ミラー" アプリケーションでは、この機能宣言を使用して、前向きカメラが必要であることを示すことができます。前向きカメラを使用していないユーザーには、デバイスがアプリケーションの要件を満たしていないことが通知されますが、それでもアプリケーションをダウンロードできます。

アプリケーションが前向きカメラまたはプライマリ カメラ (デバイスの背面にあります) のいずれも使用できる場合は、ID_HW_FRONTCAMERA 機能を使用しないでください。Windows Phone OS 7.1 では前向きカメラとプライマリ カメラはオプション機能なので、使用する前に使用できるかどうかを確認するのがベスト プラクティスです。これを行う方法の例については、「方法: Windows Phone 用の基本的なカメラ アプリケーションを作成する」および「方法: Windows Phone 用カメラ アプリケーションでビデオを記録する」を参照してください。

たとえば、アプリケーションで前向きカメラが必要な場合は、アプリケーション マニフェスト ファイルの Capabilities 要素に次の要素を含めます。

<Capability Name="ID_CAP_ISV_CAMERA"/>
<Capability Name="ID_HW_FRONTCAMERA"/>

アプリケーションがどちらの種類のカメラでも使用できる場合は、次に示すように、カメラ機能要素だけが必要です。

<Capability Name="ID_CAP_ISV_CAMERA"/>

アプリケーション マニフェスト ファイルの詳細については、「Windows Phone のアプリケーション マニフェスト ファイル」を参照してください。

Windows Phone でのカメラと写真のクラスのサポート: 開発者は Windows Phone および Silverlight 4 クラスの両方の API を組み合わせて使用してカメラ アプリケーションを作成します。このセクションでは、主要クラスの一覧を示し、使用方法を定義します。

Windows Phone のカメラ アプリケーション: このセクションでは、Windows Phone カメラ アプリケーションを作成する方法について、目的に合った手順を示します。

Windows Phone の Pictures 機能拡張: アプリ コネクトによって、開発者は写真ベースのアプリケーションを、Windows Phone の写真および Pictures ハブのエクスペリエンスにシームレスに統合できます。

Windows Phone 用の写真のデコードとエンコード: Windows Phone には、写真のデコードとエンコード用のマネージ API が用意されています。これは、写真アプリケーションの根幹であり、静止画像プラットフォーム インフラストラクチャにとって欠かせない要素です。開発者は、適切なパフォーマンスとメモリ消費量の静止画像アプリケーションを簡単に実装することができます。

Windows Phone のカメラと写真のベスト プラクティス: このセクションでは、効率的でパフォーマンスに優れたカメラ アプリケーションを作成するためのベスト プラクティスを示します。

表示: