【发布时间】:2021-08-21 23:01:21
【问题描述】:
我使用 Swift / UIKit 开发了一个 iOS 广播音频应用程序,一切正常。
我想与 CarPlay 集成并获得所需的权利。
我相信我已经设置了大部分内容,因为我可以看到 CPListTemplate 和我的 CPListItems,点击其中一个,它会转到 CPNowPlayingTemplate 并且音频开始在模拟器中播放。
虽然一切似乎都运行良好,但是有两个问题:
- 我似乎无法与 CPNowPlayingTemplate 播放/暂停按钮进行交互,我只是一直看到播放按钮,但单击它没有任何反应
添加此代码后,我可以在设备的锁定屏幕上和通过命令中心执行此操作:
func setupNowPlayingInfoCenter(){
UIApplication.shared.beginReceivingRemoteControlEvents()
MPRemoteCommandCenter.shared().playCommand.isEnabled = true
MPRemoteCommandCenter.shared().playCommand.addTarget { [weak self] event in
self?.reliableRadioPlayer?.play()
return .success
}
MPRemoteCommandCenter.shared().pauseCommand.isEnabled = true
MPRemoteCommandCenter.shared().pauseCommand.addTarget { [weak self] event in
self?.reliableRadioPlayer?.pause()
return .success
}
}
- 第二个问题再次出现在同一个屏幕上,我看不到任何元数据,例如艺术作品、歌曲名称和艺术家姓名 - 在这些的帮助下,这些再次显示在设备的锁定屏幕和命令中心代码行数:
MPNowPlayingInfoCenter.default().nowPlayingInfo =
[MPMediaItemPropertyTitle: currentlyPlaying.getSongName(),
MPMediaItemPropertyArtist: currentlyPlaying.getSongArtist(),
MPMediaItemPropertyArtwork: artwork]
我是否需要进行其他设置,或者这些仅仅是 CarPlay 模拟器的限制?
谢谢
【问题讨论】:
-
嗨,这是我之前发布的一个类似问题,你能帮我解决一下吗stackoverflow.com/questions/68633941/…
标签: ios swift mpnowplayinginfocenter carplay mpremotecommandcenter