2016-11-20 79 views
3

在发射时,得到以下输出:未被授权,一个iOS10设备上跳过过滤谓词应用

[MC]从公共有效的用户设置读。

[SDKPlayback] MPMusicPlayerController] MPMusicPlayerController:服务器未运行,推迟办理入住

[SDKLibrary]未经授权,跳过过滤谓词应用

该应用程序从用户的库中播放音乐,因此必须问权限,所以我已经用NSAppleMusicUsageDescription所需的键字符串更新了info.plist,但是一旦谓词被调用,应用程序就会崩溃。当应用程序停止并且启动屏幕消失时,许可窗口最终显示。如果我点击允许,随后的发布会正常工作。

我的问题是:“服务器没有运行”错误是否与权限窗口没有显示有关?如果是这样,我该如何启动它?

+0

上述输出是在设备(iPhone 6s +)上运行时生成的,而不是在模拟器中生成的。 – rocketman240

+0

此外,这是一个systemMusicPlayer,而不是一个applicationMusicPlayer。 – rocketman240

回答

8

所以,一个MPMusicPlayerController的工作方式是:

  1. 你必须有在的Info.plist关键,因为你已经知道了。

  2. 在你的代码中,检查授权MPMediaLibrary.authorizationStatus

  3. 如果您没有授权,请使用MPMediaLibrary.requestAuthorization进行授权。在获得授权之前,您无法继续。请小心,因为呼叫是异步,并且完成在后台线程上被称为

  4. 现在制作一张MPMediaItemCollection,然后拨打setQueue(with:),然后拨打play

+0

这就是我所缺少的。由于我不具备标记答案所需的声望,因此我将离开此评论。 – rocketman240