【问题标题】:Not authorized, skipping filter predicate application未授权,跳过过滤谓词应用
【发布时间】:2017-04-04 05:01:58
【问题描述】:

在 iOS10 设备上启动时,我得到以下输出:

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

[SDKPlayback] MPMusicPlayerController] MPMusicPlayerController:服务器未运行,延迟签入

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

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

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

【问题讨论】:

  • 上述输出是在设备(iPhone 6s+)上运行时产生的,而不是在模拟器中。
  • 另外,这是一个 systemMusicPlayer,而不是 applicationMusicPlayer。

标签: ios swift3 plist ios10 mpmusicplayercontroller


【解决方案1】:

所以,MPMusicPlayerController 的工作方式是:

  1. 您必须拥有 Info.plist 中的密钥,正如您已经知道的那样。

  2. 在您的代码中,使用MPMediaLibrary.authorizationStatus 检查授权。

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

  4. 现在您创建一个 MPMediaItemCollection 并调用setQueue(with:),然后调用play

【讨论】:

  • 这就是我所缺少的。我要留下这条评论,因为我没有标记答案所需的声誉。
  • @matt:感谢您的支持。如何播放列表中的特定歌曲。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多