我正在尝试编写一个基于Xamarin.Forms的应用程序来播放音乐。我使用标准的Xamarin Forms Dependency Service模式为iOS创建一个特定于平台的播放器,它使用MPMusicPlayerController记录的Xamarin。当我编写代码时,可以访问MPMusicPlayerController.NowPlayItem属性;
当我第一次测试时,一切正常。然后我开始尝试收听来自MPMusicPlayerController的通知,它“消失了”;当我调试时,属性丢失,当我尝试访问它时,我得到一个深度单声道SIGSEGV异常;
调试器通常会尝试引用属性并崩溃。所以;我拿出了通知,它仍然会发生!
答案 0 :(得分:1)
我在Xcode和Objective C中重新创建了引起问题的部分代码。虽然在运行Xamarin并从Xamarin崩溃后查看Xcode中的设备日志也会显示问题。
为访问媒体库的任何内容提供更新版本的iOS expect an Info.plist entry; Privacy - Apple Music Usage Description。有趣的是,似乎允许回放,感觉就像不应该允许NowPlayingItem属性,但不知何故,有时是。
最后,我发现我必须将plist条目放入,并且还必须检查并有时要求this post中的授权。
完成上述两项操作后,NowPlayingItem属性正常工作,我收到通知。