2012-12-19 4 views
0

Windows Phone 7.5 및 Windows Phone 8 용 뮤직 플레이어 앱을 개발했습니다. 이제 다양한 블루투스 장치로 음악을 듣고 싶습니다. 나는 그것을 나의 전화에 연결할 수 있고 음악을들을 수있다, 그래서 그것은 잘 작동하고있다. 그러나 특정 시나리오에서는 이상하게 작동합니다. 음악이 일시 중지 된 경우 블루투스를 분리하면 스피커에서 다시 시작됩니다. 내 로그에서 사용자 동작을받은 것을 볼 수 있습니다. UserAction.SEEK은 블루투스를 끈 상태였습니다. 이 시점에서 player.Position 변수는 어떻게 든 0이되었으므로 0으로 되돌아 가서 내가 있던 곳으로 돌아갑니다. 그리고 나는 그 행동을 일으킬만한 행동을하지 않습니다.블루투스 헤드셋으로 WP7 및 WP8 앱을 제어하십시오.

내가 묻는 바는 : 나의 블루투스 장치로 무언가를 할 때 어떤 일이 일어나는지를 제어 할 수있는 방법이 있는가 또는 AudioPlaybackAgent에서 제어권을 얻는 방법이 있습니까? 발생하는 이벤트가 있습니까? 아니면이 모든 것이 OS에서 처리됩니까? 그렇다면 내 응용 프로그램이 주식 응용 프로그램과 다른 방식으로 작동하는 이유는 무엇입니까? 또한 블루투스 장치를 켜면 UserAction.SEEK가 수신되는 이유는 무엇입니까?

내 질문에 명확하지 않은 경우 주저하지 말고 물어보십시오.

답변

2

플랫폼과 관련된 알려진 문제이지만 WP8 GDR2에서 수정되었습니다. OnUserAction SeekPlay의 시퀀스를 감지하여 문제를 해결할 수 있습니다. 감지되면 OnPlayerStateChanged으로 전화를 걸어 일시 중지 할 수 있습니다. OnUserAction의 동일한 인스턴스 AudioPlayer 호출 할 보장 할 수 없습니다에

  • 연속 통화, 그래서 어떤 상태가 정적 인 상태로 보관해야합니다 : 몇 가지 알고 있어야합니다. 0으로 볼륨을 설정할 수 있습니다, 그래서
  • 이 트랙은, 짧은 순간의 스피커에서 재생됩니다

(그것의 메모를 한 후 이전 값은 물론이다) 나는 Gist to GitHub with a full implementation을 게시했습니다. 문제의 예제 사용 및 자세한 설명은 available on my blog입니다.

관련 문제