Características de la interfaz de usuario de la cámara para dispositivos móviles
En este artículo se muestra cómo aprovechar las características especiales de la interfaz de usuario de cámara que solo están presentes en dispositivos móviles.
Adición de la extensión móvil al proyecto
Para usar estas características, debe agregar una referencia al SDK de extensión móvil de Microsoft para la Plataforma universal de aplicaciones al proyecto.
Para agregar una referencia al SDK de extensión móvil para la compatibilidad con el botón de cámara de hardware
En el Explorador de soluciones, haga clic con el botón derecho en Referencias y seleccione Agregar referencia.
Expanda el nodo Universal de Windows y seleccione Extensiones.
Active la casilla Microsoft Mobile Extension SDK for Universal App Platform (SDK de extensión móvil de Microsoft para plataforma de aplicaciones universales).
Ocultar la barra de estado
Los dispositivos móviles tienen un control StatusBar que proporciona al usuario información de estado sobre el dispositivo. Este control ocupa espacio en la pantalla que puede interferir con la interfaz de usuario de captura multimedia. Puede ocultar la barra de estado llamando a HideAsync, pero debe realizar esta llamada desde dentro de un bloque condicional donde use el método ApiInformation.IsTypePresent para determinar si la API está disponible. Este método solo devolverá true en los dispositivos móviles que admiten la barra de estado. Debes ocultar la barra de estado cuando la aplicación se inicie o cuando empieces a obtener una vista previa de la cámara.
// Hide the status bar
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().HideAsync();
}
Cuando la aplicación se apaga o cuando el usuario se aleja de la página de captura multimedia de la aplicación, puedes volver a hacer que el control sea visible.
// Show the status bar
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().ShowAsync();
}
Uso del botón de cámara de hardware
Algunos dispositivos móviles tienen un botón de cámara de hardware dedicado que algunos usuarios prefieren sobre un control en pantalla. Para recibir una notificación cuando se presiona el botón de la cámara de hardware, registre un controlador para el evento HardwareButtons.CameraPressed. Dado que esta API solo está disponible en dispositivos móviles, debe volver a usar IsTypePresent para asegurarse de que la API es compatible con el dispositivo actual antes de intentar acceder a ella.
using Windows.Phone.UI.Input;
if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
HardwareButtons.CameraPressed += HardwareButtons_CameraPressed;
}
En el controlador para el evento CameraPressed , puedes iniciar una captura de fotos.
private async void HardwareButtons_CameraPressed(object sender, CameraEventArgs e)
{
await TakePhotoAsync();
}
Cuando la aplicación se apaga o el usuario se aleja de la página de captura multimedia de la aplicación, anule el registro del controlador de botón de hardware.
if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
HardwareButtons.CameraPressed -= HardwareButtons_CameraPressed;
}