Fonctionnalités d’interface utilisateur d’appareil photo pour les appareils mobiles

Cet article vous montre comment tirer parti des fonctionnalités spéciales de l’interface utilisateur de l’appareil photo qui sont uniquement présentes sur les appareils mobiles.

Ajouter l’extension mobile à votre projet

Pour utiliser ces fonctionnalités, vous devez ajouter une référence au Kit de développement logiciel (SDK) d’extension mobile Microsoft pour la plateforme d’applications universelles à votre projet.

Pour ajouter une référence au Kit de développement logiciel (SDK) d’extension mobile pour la prise en charge du bouton caméra matérielle

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur Références, puis sélectionnez Ajouter une référence.

  2. Développez le nœud windows universel et sélectionnez Extensions.

  3. Activez la case à cocher Kit de développement logiciel (SDK) d’extension mobile Microsoft pour la plateforme d’applications universelles.

Masquer la barre d’état

Les appareils mobiles disposent d’un contrôle StatusBar qui fournit à l’utilisateur des informations d’état sur l’appareil. Ce contrôle prend de l’espace sur l’écran qui peut interférer avec l’interface utilisateur de capture multimédia. Vous pouvez masquer la barre d’état en appelant HideAsync, mais vous devez effectuer cet appel à partir d’un bloc conditionnel dans lequel vous utilisez la méthode ApiInformation.IsTypePresent pour déterminer si l’API est disponible. Cette méthode retourne uniquement true sur les appareils mobiles qui prennent en charge la barre d’état. Vous devez masquer la barre d’état lorsque votre application démarre ou lorsque vous commencez à afficher un aperçu à partir de l’appareil photo.

// Hide the status bar
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
    await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().HideAsync();
}

Lorsque votre application s’arrête ou lorsque l’utilisateur quitte la page de capture multimédia de votre application, vous pouvez rendre le contrôle à nouveau visible.

// Show the status bar
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
    await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().ShowAsync();
}

Utiliser le bouton de la caméra matérielle

Certains appareils mobiles disposent d’un bouton de caméra matériel dédié que certains utilisateurs préfèrent sur un contrôle à l’écran. Pour être averti lorsque le bouton de la caméra matérielle est enfoncé, inscrivez un gestionnaire pour l’événement HardwareButtons.CameraPressed . Étant donné que cette API est disponible uniquement sur les appareils mobiles, vous devez à nouveau utiliser IsTypePresent pour vous assurer que l’API est prise en charge sur l’appareil actuel avant de tenter de l’accéder.

using Windows.Phone.UI.Input;
if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
    HardwareButtons.CameraPressed += HardwareButtons_CameraPressed;
}

Dans le gestionnaire de l’événement CameraPressed , vous pouvez lancer une capture de photos.

private async void HardwareButtons_CameraPressed(object sender, CameraEventArgs e)
{
    await TakePhotoAsync();
}

Lorsque votre application s’arrête ou que l’utilisateur s’éloigne de la page de capture multimédia de votre application, annulez l’inscription du gestionnaire de boutons matériels.

if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
    HardwareButtons.CameraPressed -= HardwareButtons_CameraPressed;
}