Поделиться через


Функции пользовательского интерфейса камеры для мобильных устройств

В этой статье показано, как воспользоваться специальными функциями пользовательского интерфейса камеры, которые присутствуют только на мобильных устройствах.

Добавление расширения мобильного устройства в проект

Чтобы использовать эти функции, необходимо добавить ссылку на пакет SDK для расширения Microsoft Mobile для универсальной платформы приложений в проект.

Добавление ссылки на пакет SDK для мобильных расширений для поддержки кнопки аппаратной камеры

  1. В обозревателе решений щелкните правой кнопкой мыши пункт Ссылки и выберите команду Добавить ссылку.

  2. Разверните универсальный узел Windows и выберите "Расширения".

  3. Установите флажок Microsoft Mobile Extension SDK для универсальной платформы приложений.

Скрытие строки состояния

Мобильные устройства имеют элемент управления StatusBar , предоставляющий пользователю сведения о состоянии устройства. Этот элемент управления занимает место на экране, который может повлиять на пользовательский интерфейс записи мультимедиа. Вы можете скрыть строку состояния, вызвав HideAsync, но этот вызов необходимо выполнить в условном блоке, где используется метод ApiInformation.IsTypePresent для определения доступности API. Этот метод возвращает значение true только на мобильных устройствах, поддерживающих строку состояния. Вы должны скрыть строку состояния при запуске приложения или при запуске предварительного просмотра с камеры.

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

Когда приложение завершает работу или когда пользователь переходит от страницы захвата мультимедиа приложения, вы можете снова сделать элемент управления видимым.

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

Использование кнопки аппаратной камеры

Некоторые мобильные устройства имеют выделенную кнопку аппаратной камеры, которую некоторые пользователи предпочитают использовать на экране. Чтобы получать уведомления о нажатии кнопки аппаратной камеры, зарегистрируйте обработчик события HardwareButtons.CameraPressed. Так как этот API доступен только на мобильных устройствах, необходимо снова использовать IsTypePresent , чтобы убедиться, что API поддерживается на текущем устройстве, прежде чем пытаться получить к нему доступ.

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

В обработчике события CameraPressed можно инициировать фотозахват.

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

Когда приложение завершает работу или пользователь переходит от страницы захвата мультимедиа приложения, отмените регистрацию обработчика аппаратной кнопки.

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