2016-11-03 3 views
0

음악 재생을위한 Xamarin.Forms 기반 응용 프로그램을 작성하려고합니다. 저는 Xamarin Forms Dependency Service 표준 패턴을 사용하여 에 문서화 된 MPMusicPlayerController을 사용하는 iOS 용 플랫폼 전용 플레이어를 만듭니다. 코드를 작성할 때 MPMusicPlayerController.NowPlayItem 속성에 액세스 할 수 있습니다. 내가 처음 그것을 테스트 할 때Xamarin.iOS : MPMusicPlayerController.NowPlayingItem 속성이 사라집니다.

NowPlayingItem is accessible

은 모든 것을 확인했다. 나는 MPMusicPlayerController로부터 알림을 듣기 시작했고 그것은 사라졌다. 내가 디버깅 할 때, 속성이 빠져 있고 접근하려고 할 때 나는 깊은 모노 SIGSEGV 예외를 얻는다;

Property has disappeared

는 종종 디버거가 충돌 또한 속성을 참조하려고합니다. 그래서; 나는 알림을 꺼냈다. 그리고 그것은 아직도 일어난다!

+0

그건 그렇고; 그것뿐만 아니라 null; 그건 괜찮을거야. 다른 속성과 함께 완전히 사라지고 일부는 계속 사용할 수 있습니다. –

답변

1

Xcode 및 Objective C에서 문제를 일으키는 코드 부분을 다시 만들었습니다. Xamarin에서 실행 및 충돌 한 후 Xcode의 Device Log (장치 로그)를 보면 문제가 보였을 것입니다.

최신 버전의 iOS expect an Info.plist entry; Privacy - Apple Music Usage Description은 미디어 라이브러리에 액세스하는 모든 것에 제공됩니다. 흥미롭게도 그것은 재생이 허용되고 NowPlayingItem 속성이 허용되어서는 안되는 것처럼 느껴지지만 어떻게 든 가끔은 있습니다.

결국 나는 plist 항목을 넣어야 만한다는 것을 알았고 또한 확인을해야했고 때로는 this post과 같이 승인을 요청해야했습니다.

이 두 가지를 모두 수행하면 NowPlayingItem 속성이 작동하고 알림이 표시됩니다.