iOS Swift - MPNowPlayingInfoCenter nowPlayingInfo更新/刷新速度慢

时间:2018-01-23 05:18:31

标签: ios swift xcode mpnowplayinginfocenter

我目前正在尝试在Xcode上为iOS制作音乐播放器应用。我已经能够在锁屏/控制中心显示歌曲信息,并在用户按下锁屏/控制中心的下一个按钮时让我的音乐播放器播放下一首歌曲。

但是每隔一次我按下一个按钮,歌曲就会改变并开始正常播放,但now​​PlayingInfo不会在锁屏/控制中心更新。我做了一个方法,重新检查(按下下一个按钮1.5秒后),以确保锁屏/控制中心显示当前歌曲,如果没有,它会重新设置nowPlayingInfo上的歌曲数据(它有效,但它让你有每当信息没有更新时,等待1.5秒才能看到歌曲信息。我已经看到当你按下一个按钮时,默认音乐应用程序和其他音乐播放器几乎立即切换到下一首歌曲。

为什么nowPlayingInfo有时不更新?我做了很多测试,以确保在按下下一个按钮时调用设置了nowPlayingInfo的代码,但是每隔一次锁定/控制中心的信息不会更新(特别是如果你垃圾邮件下一个按钮;哪个我放一个0.4秒的延迟就可以播放下一首歌了。)

其他时候信息会更新,但需要花费一秒钟才能显示。

This is how I update the song info

修改

我已经解决了这个问题。之前:每次按下一个按钮,上一个按钮,暂停和播放时,我都会直接将信息中心更新到MPNowPlayingInfoCenter.nowPlayingInfo。出于某种原因,如果您快速连续调用此信息中心,这将导致信息中心放慢甚至无法更新。

现在:我有自己的[String:Any]类型的变量?名为myNowPlayingInfo(它是MPNowPlayingInfoCenter.nowPlayingInfo的类型)。我还创建了一个“需要ToUpdateInfoCenter”。布尔值。每当用户进行与歌曲信息相关的更改时,' myNowPlayingInfo'我创建的变量已更新,我设置了'需要ToUpdateInfoCenter'为真。我有一个Timer来检查是否需要ToUpdateInfoCenter'每0.5秒为真,如果为真,我只需设置MPNowPlayingInfoCenter.nowPlayingInfo = myNowPlayingInfo。 :)

0 个答案:

没有答案