0

我目前正在开发 CarPlay 音频应用程序,但我不知道何时何地使用MPPlayableContentManager.shared().beginUpdates()MPPlayableContentManager.shared().endUpdates().

Apple 文档说你应该用.beginUpdates()和包装任何更新的 MPContentItem .endUpdates()。当我这样做时,CarPlay 上没有任何更新。我觉得我在错误的地方调用函数。

苹果文档:

如果要更改多个项目或项目的多个属性,则应在更新 MPContentItem 对象之前调用 MPPlayableContentManager beginUpdates,并在完成更新后调用 endUpdates。这样,项目将立即在屏幕上刷新。

对我来说,当我检索数据时,我需要在 API 请求的响应中使用.beginUpdates().endUpdates()响应,但我不确定。有人可以举例说明何时使用两者.beginUpdates()以及.endUpdates()何时更新内容?

4

1 回答 1

0

当您单击 Playable 项目以启动 NowPlaying 屏幕时,它会调用:

func playableContentManager(_ contentManager: 
MPPlayableContentManager, initiatePlaybackOfContentItemAt indexPath: 
 IndexPath, completionHandler: @escaping (Error?) -> Void)  

在此函数中,您必须使用 .beginUpdates() 和 .endUpdates()。在这两者之间,您必须初始化:

self.infoCenter.nowPlayingInfo = self.setupNowPlayingInfo(for:  indexPath)
      completionHandler(nil)

此方法主要用于在模拟器中测试 CarPlay 应用程序。

从 10:15 检查这个 wwdc2018

于 2020-10-03T06:30:13.063 回答