如何在 CarPlay 中显示“正在播放”选项卡?

Posted

技术标签:

【中文标题】如何在 CarPlay 中显示“正在播放”选项卡?【英文标题】:How to show the Now Playing Tab in CarPlay? 【发布时间】:2018-01-29 05:24:17 【问题描述】:

我正在开发一款支持 CarPlay 的应用。它是一款音频应用。

我可以显示 2 个标签(收藏和推荐),但我只是不知道如何显示“正在播放”标签。我只是找不到任何有关此的信息。 我是否必须手动显示它,以及如何推送?我必须手动完成吗?如果有,viewcontroller 是什么?

谢谢。

【问题讨论】:

CarPlay 文档的不足之处真是太疯狂了! ios 12 中,它变得更好了。 【参考方案1】:

要让正在播放选项卡在模拟器和实际汽车上都可以工作,您需要确保

在当前的UIApplication 上调用beginReceivingRemoteControlEvents,然后 在MPPlayableContentManager 上设置nowPlayingIdentifier

playableContentManager:initiatePlaybackOfContentItemAtIndexPath:completionHandler: 中调用完成处理程序之前。

【讨论】:

太棒了!我已经完成了第一个也是最后一个建议,我认为这已经成功了。我想知道是否需要第二个,但我不知道该怎么做。如何设置正在播放的标识符? @mike-nelson: MPPlayableContentManager.sharedContentManager.nowPlayingIdentifiers = @[ nowPlaying ],其中 nowPlaying 是您开始播放的MPContentItem 的 ID。 感谢@DrMickeyLauer,这可行,它现在在 carplay 列表视图中的播放项目旁边显示一个小扬声器图标。但是,beginReceivingRemoteControlEvents 实际上会阻止显示正在播放的屏幕,除非我调用 endReceivingRemoteControlEvents 并在每次调用 play 时重新开始。这几乎可以完美运行,除了第一次播放项目时拒绝显示正在播放的屏幕。有什么建议吗? @DrMickeyLauer 请你帮帮我,我已经设置了这样的东西,但它不起作用:***.com/questions/64059229/…【参考方案2】:

我知道这篇文章已经发布了几个月,但对我来说,我必须在带有 CarPlay 的实际设备中进行测试。 Apple 表示始终在带有 CarPlay 的实际设备上对其进行测试。起初,我在模拟器中没有看到“正在播放”选项卡,但一旦在设备中进行测试,它就会自动出现。我没有做任何特别的事情。我认为 CarPlay 知道您何时通过 MPNowPlayingInfoCenter 播放音频,并在实际的 CarPlay 设备中自动执行此操作。

【讨论】:

以上是关于如何在 CarPlay 中显示“正在播放”选项卡?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 CarPlay 音频应用程序中的实时 URL 集成音频

使用 jQuery,如何禁用当前选项卡上的点击效果?

如何在一个选项卡中隐藏现有属性并在另一个选项卡中显示它

在Vue中重新加载或刷新页面时如何显示正确的嵌套子选项卡

如何使 jQuery UI 选项卡在激活选项卡时执行“显示:flex”而不是“显示:阻止”?

如何在适当的选项卡中保持突出显示?