WP7이 전화에서 충돌하지만 에뮬레이터에서는 충돌하지 않는 노래 재생


13

XNA 4.0을 통해 Windows Phone 7에서 재생을 시작하고 계속 반복되는 노래를 게임에 구현하려고합니다. 에뮬레이터에서 이것은 잘 작동하지만 전화에 배포 할 때 홈 화면으로 돌아 가기 전에 검은 색 화면을 제공합니다. 문제가되는 악성 코드는 다음과 같습니다.이 코드에 주석을 달면 앱이 전화에서 제대로 실행됩니다.

// in the constructor fields
private Song song;

// in the LoadContent() method
song = Content.Load<Song>("song");

// in the Update() method
if (MediaPlayer.GameHasControl && MediaPlayer.State != MediaState.Playing)
{
    MediaPlayer.Play(song);
}

노래 파일 자체는 106kbps 비트 전송률의 2:53 길이, 2.28mb .wma 파일입니다.

다시 이것은 에뮬레이터에서 완벽하게 작동하지만 전화에서는 전혀 실행되지 않습니다. 도움을 주셔서 감사합니다.


4
try-catch를 고수하고 어떤 예외가 발생했는지 확인하십시오. 도움이 필요합니다.
Ray Dey

좋은 조언. 예외는 "System.InvalidOperationException : 노래 재생에 실패했습니다. 노래가 DRM으로 보호되어 있지 않은지 확인하십시오."입니다. 또한 MP3로 인코딩 된 노래를 사용해 보았고 동일한 결과를 얻었습니다 (에뮬레이터에서 작동, 전화에서 작동하지 않음). 부가 질문 : 전화에 디버그 텍스트를 인쇄 / 저장하는 쉬운 방법이 있습니까? 내 유일한 옵션은 화면에 텍스트를 그리는 것이 었습니다.
Michael Zehnich

답변:


13

우리는 이것을 알아 냈습니다. 정보는 온라인에서 볼 수 있지만 실제로 숨겨져 있으므로 여기에 게시하여 적절한 측정을하겠습니다.

기본적으로 전화가 컴퓨터에 연결되어 있고 Zune 소프트웨어가 실행중인 경우 전화의 미디어가 잠기므로 앱의 MediaPlayer 는 노래를 재생할 수있는 권한 이 없습니다 .

제대로 작동하려면 사용자는 전화를 분리하거나 (예 : USB 코드 플러그를 뽑아야 함) 디버깅과 관련하여이를 염두에두고 설계된 Windows Phone Connect 도구를 사용해야합니다. http : // msdn. microsoft.com/ko-kr/library/gg180729%28v=VS.92%29.aspx- 도구를 사용해 보지는 않았지만 매력적이지 않았습니다.

또한 앱에 노래를 재생할 권한이 없으면 예외를 처리하지 않으면 충돌이 발생하므로 try / catch 블록을 사용해야합니다. 포착 된 예외는 간단히 무시할 수 있습니다.


1
아, DRM의 기쁨.
Jari Komppa

1
알아두면 좋을 것 같습니다. 꽤 많은 개발자 가이 문제를 겪고 있다고 생각할 때 짜증납니다.
Ray Dey

2

Michael Zehnich의 답변은 실제로 정확합니다. 그러나 나는 동일한 예외를 일으키는 다른 문제를 발견했습니다.

나를위한 문제는 내 WMAppManifest.xml에 ID_CAP_MEDIALIB 기능이 누락되었다는 것입니다.

<Capability Name="ID_CAP_MEDIALIB"/>

도움이 되었기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.