5

Windows 10 用のユニバーサル アプリケーションを開発するときは、 を使用してデバイス固有のハードウェアを検出することをお勧めしますIsTypePresent。(マイクロソフトはこの機能を「ライトアップ」と呼んでいます)。デバイスの戻るボタンをチェックするドキュメントの例は次のとおりです。

if(Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;

ここで、文字列"Windows.Phone.UI.Input.HardwareButtons"が引数としてメソッドに渡されることは明らかですIsTypePresent()

他のハードウェア、特にカメラに使用できる他の文字列を特定する簡単な方法があるかどうか知りたいです。

4

1 に答える 1

10

IsTypePresent は、ハードウェアの存在を検出するのではなく、API の存在を検出するために使用されます。コード スニペットでは、デバイスにハードウェア ボタンがあるかどうかではなく、アプリが呼び出すための HardwareButtons クラスが存在するかどうかを確認しています (この場合、それらは一緒に動作する可能性がありますが、それは IsTypePresent が探しているものではありません)。

カメラで使用される MediaCapture クラスは、ユニバーサル API コントラクトの一部であるため、常にそこにあり、呼び出し可能です。適切なオーディオまたはビデオ デバイスがない場合、初期化は失敗します。

ハードウェア デバイスを見つけるには、Windows.Devices.Enumeration 名前空間を使用できます。カメラをクエリして最初のカメラの ID を見つける簡単なスニペットを次に示します。

var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(Windows.Devices.Enumeration.DeviceClass.VideoCapture);

if (devices.Count < 1)
{
    // There is no camera. Real code should do something smart here.
    return;
}

// Default to the first device we found
// We could look at properties like EnclosureLocation or Name
// if we wanted a specific camera
string deviceID = devices[0].Id;

// Go do something with that device, like start capturing!
于 2015-06-12T19:17:14.000 に答える