모바일 디바이스용 카메라 UI 기능

이 문서에서는 모바일 디바이스에만 존재하는 특수 카메라 UI 기능을 활용하는 방법을 보여줍니다.

프로젝트에 모바일 확장 추가

이러한 기능을 사용하려면 프로젝트에 유니버설 앱 플랫폼용 Microsoft 모바일 확장 SDK에 대한 참조를 추가해야 합니다.

하드웨어 카메라 단추 지원을 위해 모바일 확장 SDK에 대한 참조를 추가하려면

  1. 솔루션 탐색기에서 참조를 마우스 오른쪽 단추로 클릭하고, 참조 추가를 선택합니다.

  2. Windows Universal 노드를 확장하고 Extensions을 선택합니다.

  3. 유니버설 앱 플랫폼용 Microsoft 모바일 확장 SDK 검사 상자를 선택합니다.

상태 표시줄을 숨기세요.

모바일 디바이스에는 사용자에게 디바이스에 대한 상태 정보를 제공하는 StatusBar 컨트롤이 있습니다. 이 컨트롤은 미디어 캡처 UI를 방해할 수 있는 화면의 공간을 차지합니다. 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;
}