전원을 절약하는 백그라운드 미디어 앱 작성(HTML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

소개

AOAC(항상 연결) 전원 모델은 Windows 8의 새로운 기능입니다. 이 방법으로 앱은 계속 연결되어 응답하는 동안에도 전원을 거의 사용하지 않습니다. 이 새로운 저 전원 상태를 CS(연결된 대기 상태)라고 합니다. 이 상태의 목표는 백그라운드 미디어 앱이 한 번의 배터리 충전으로 여러 시간 동안 재생할 수 있도록 저 전원 오디오 재생을 사용하는 것입니다.

연결된 대기 상태의 전원 목표에 도달하려면 네트워크 연결에서 저 전원 상태로 전환해야 합니다. 즉, 백그라운드 오디오 앱에서 마음대로 네트워크에 액세스할 수 없습니다. Microsoft 미디어 파운데이션 원본은 받은 편지함 원본을 사용하는 경우 네트워크 파일 위치와 스트리밍 미디어 둘 다에서 HTML5 오디오 태그 등을 통해서 네트워크 콘텐츠를 계속 재생할 수 있습니다. 그러나 앱이 라이선스 확인, 메타데이터, 사용자 통계 등의 다른 이유로 네트워크에 액세스해야 하는 경우 몇 가지 추가 작업을 수행해야 합니다.

이러한 요구 사항은 백그라운드에서 오디오를 재생하는 앱에만 적용됩니다. 백그라운드 오디오 재생에 대한 자세한 내용은 백그라운드에서 오디오를 재생하는 방법을 참조하세요.

네트워크에 액세스하는 방법

백그라운드 오디오 앱은 다음과 같은 세 가지 방법으로 네트워크 액세스할 수 있습니다.

  1. Background transfer API. 최상의 옵션입니다. 파일이 업로드되거나 다운로드될 때 백그라운드 전송 API를 통해 추가 네트워킹을 호출하면 됩니다. 네트워크를 가동하고 중단하는 모든 작업이 자동으로 수행됩니다. 자세한 내용은 Windows.Networking.BackgroundTransfer를 참조하세요.

  2. Wrap an existing MF bytestream. 백그라운드 전송 API는 파일 전송을 위해 설계되었으며 작고 빠른 네트워크 통신을 위해 너무 많이 전달될 수 있습니다. 미디어 파운데이션 원본 또는 바이트 스트림이 인스턴스화되면 Windows에서 대신 네트워크 참조를 수행합니다. 이 방법은 사용자 지정 미디어 파운데이션 원본 및 바이트 스트림에도 적용됩니다. 완전히 사용자 지정된 원본 또는 바이트 스트림이 너무 복잡하여 문제를 단순화하려면 받은 편지함 바이트 스트림을 래핑할 수 있습니다. 초기화 후에는 앱이 모든 네트워킹 API를 사용하여 필요에 따라 네트워크를 사용할 수 있습니다. 네트워크 작업이 완료되면 래퍼에서 받은 편지함 바이트 스트림 사용을 시작합니다. 그런 다음 받은 편지함 바이트 스트림이 완료되면 네트워크를 종료합니다.

    사용자 지정 원본 예제는 실시간 통신 샘플을 참조하세요.

    앱과 원본 간에 통신하는 방법에 대한 예제는 미디어 스트림 소스 샘플을 참조하세요.

  3. Fully custom Media Foundation source or bytestream. 옵션 2와 유사하지만 받은 편지함 구성 요소를 사용하는 대신 개발자가 전체 미디어 파운데이션 원본 또는 바이트 스트림을 작성합니다. 이 경우 특성 변경을 수행하여 네트워크 작업이 완료될 때 미디어 파운데이션에 알리는 것은 사용자의 책임입니다. 다음 그림에서는 예제 흐름을 보여 줍니다.

다음은 옵션 2 또는 3을 사용하는 두 개의 음악 재생 목록에 대한 예입니다.

옵션 2 또는 3을 사용하는 두 개의 음악 재생 목록에 대한 예제 흐름입니다.

앱에서 이러한 솔루션이 모두 작동하지 않을 경우 lpa_questions@microsoft.com에 문의하세요. 정확한 사용 시나리오 및 위의 옵션이 작동하지 않는 이유를 자세히 설명하세요.

기타 고려 사항

저 전원 오디오 앱에는 앱이 네트워크에 제대로 액세스하는지 확인하는 것 외에 몇 가지 다른 고려 사항이 있습니다. 대부분의 시스템이 일시 중단되어도 앱은 실행될 수 있으므로 앱을 개발하는 동안 전원 요구 사항을 염두에 두어야 합니다. 표시 형식 변경 알림(이 알림은 앱이 백그라운드로 실행되는 경우와 장치가 CS로 전환되는 경우 모두 발생함)을 힌트로 사용하여 앱을 고유한 저 전원 모드로 전환하세요.

  • UI 업데이트를 수행하지 마세요. 앱이 표시되지 않으면 그래픽이나 UI 관련 항목에서 전원을 불필요하게 사용합니다.
  • 가능하면 작업을 줄이세요. 이는 UI 업데이트와 밀접하게 연관됩니다. 사용자가 있는 경우에만 필요한 작업이라면 앱에 표시되지 않을 때는 수행하지 않는 것이 좋습니다.
  • 네트워크 통신을 일괄 처리하세요. 현저한 CPU나 네트워크 사용 시간 없이 앱이 길게 실행될 수록 더 좋습니다.
  • 연결된 대기 상태에서는 작업 시간이 더 오래 걸릴 수 있습니다. 앱은 연결된 대기 상태에서 제한되며 제한된 시간 동안만 CPU에서 실행됩니다.
  • 최상의 오디오 리소스 사용을 보장하려면 응용 프로그램에서 동시에 사용되는 오디오 태그 수를 하나 또는 두개로만 제한해야 합니다(초기화할 수 있지만 활발하게 재생되지 않는 태그 포함).