如何在iOS 7锁屏上设置当前的播放时间和播放时间?

从iOS 5开始,每个音乐播放器都可以在[MPNowPlayingInfoCenter defaultCenter] .nowPlayingInfo上设置当前正在播放的音乐信息,如标题,艺术家,专辑标题和插图,以在locking屏幕上显示。

在iOS 7上,播放位置滑块,持续时间和已用时间信息将同时添加到locking屏幕和控制中心。 但是,我找不到任何文档来设置这些types的信息,并启用滑块来改变播放位置。

有什么办法可以解决这个问题吗?

即使文档默认为1.0,您也需要将播放速率设置为1.0f。

NSDictionary *mediaInfo = @{ MPMediaItemPropertyTitle: audio.title, MPMediaItemPropertyArtist: audio.artist, MPMediaItemPropertyPlaybackDuration: audio.duration, MPNowPlayingInfoPropertyPlaybackRate: @(1.0) }; [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:mediaInfo]; 

它们全部logging在MPNowPlayingInfoCenter的参考文献中。 当前正在播放的属性是可选或不可设置的值。 链接到正常游戏属性列表的末尾的句子中:

本文档的“其他元数据属性”中介绍了可以设置的其他属性 。 (重点是我的)

您感兴趣的属性是: MPNowPlayingInfoPropertyElapsedPlaybackTimeMPMediaItemPropertyPlaybackDuration

这些信息都是公开的,因为iOS 7 SDK似乎还没有发布(截至2013年9月14日),我认为它在该版本的iOS之前也是可用的。

只是要警告:苹果的文件从来没有明确这一点 – 如果你使用MPMusicPlayerController,你的音乐在“音乐”应用程序的引擎下播放,你没有nowPlayingInfoCenter的任何控制。 而且您将不会收到用户操作(如播放/暂停)应用于locking屏幕所产生的远程控制事件,因为这些事件是通过nowPlayingInfoCenter传播到“音乐”应用程序,而不是您的。 使用其他媒体播放器(如AV或AvAudio)时,您可以控制nowPlayingInfoCenter并接收遥控事件。 但是,如果您使用AVAudioSessionCategoryOptions.MixWithOthers设置AV播放器,则无法控制nowPlayingInfoCenter。 我希望苹果更好地logging这些细节。