Metro/Windows 8

[윈도우8] Background Audio와 Player Framework by Microsoft

길버트리 2012. 9. 25. 09:58

백그라운드 오디오

 

 

윈도우8앱은 특별한 설정이 없으면 일반적으로 다른 앱을 활성하여 백그라운드로 가게되면 몇 초 안에 중단됩니다.

특히 재생 중인 음악의 경우에는 백그라운드로 가자마자 페이드아웃(Fade-out)이 되며 즉시 중단됩니다.

 

음원 재생 기능이 있는 앱의 경우 보통은 백그라운드에서도 음원이 재생되고 있기를 바랄 겁니다.

그래서 Package.appxmanifest의 Declarations 탭에서 Background Task를 추가하고, Background Audio 체크박스에 체크

해 주는 등 특별한 설정이 필요한데, 이렇게 하는 것은 http://dev.windows.com에서 제공하는 샘플 코드 중 아래 링크를 참고하면 따라할 수 있습니다.

 

Background Audio C# Metro by BabaAndThePigman

Background Audio in WinRT with C#

 

 

샘플을 아무리 열심히 봐도 놓치기 쉬운 부분이 있는데요. 바로 MediaElement의 AudioCategory 속성을 "BackgroundCapableMedia"로

설정해 주셔야 한다는 점입니다. 기본값이 Other로 되어 있습니다. 이것이 이 포스트의 핵심입니다.
여러분들은 삽질하지 말고 시간단축하시길 빌어요!

 

<MediaElement x:Name="Player" AudioCategory="BackgroundCapableMedia"/>

 

 

 

Player Framework by Microsoft

 

 

http://playerframework.codeplex.com/

 

Player Framework by Microsoft는 Codeplex에 올라 가 있는 오픈소스 프로젝트로 윈도우8, HTML5, 실버라이트, 윈도우폰을 지원합니다.

기본 디자인도 윈도우 8 스토어앱 스타일(구 메트로 스타일)에 맞춰져 있어 손 안 대고 코를 풀 수 있습니다. (더럽다구요? ^^)

이 프레임웍이 지원하는 MediaPlayer 컨트롤을 사용하면, Smooth Streaming 소스도 쉽게 재생이 가능할 정도로 편합니다. 강추!

상당히 방대한 프로퍼티군을 지원하고 있어 공부가 조금 필요합니다!

 

이 컨트롤 역시 백그라운드 오디오를 지원하려고 하면 AudioCategory="BackgroundCapableMedia" 설정이 필요합니다.