我正在运行一个iOS应用程序,该应用程序使用AVPlayer来播放由AVPlayerItems表示的歌曲。
我尝试过设置MPNowPlayingInfoCenter.defaultCenter()的MPNowPlayingInfoCenter.defaultCenter属性,但是由于它需要更新其他信息,比如elapsedTime和playbackDuration,所以信息似乎会立即被AVPlayer覆盖。
即使在程序执行之后
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo?[MPMediaItemPropertyTitle] = "Title"MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo的打印输出是
信息:"MPNowPlayingInfoPropertyElapsedPlaybackTime":34.89555007300078,"AVNowPlayingInfoControllerIdentifierKey":<__NSConcreteUUID 0x13778e9b0> 9141DD1C-FD09-4210-B3C7-B948522E3AF6,"playbackDuration":198.2516666666667,"MPNowPlayingInfoPropertyPlaybackRate":1
我做错了什么?是否可以在AVPlayerItem中存储其他元数据,如标题/相册名称,以便将其显示在信息中心?
另外,什么是AVNowPlayingInfoControllerIdentifierKey?似乎没有任何名为AVNowPlayingInfoController的类。
发布于 2015-11-29 00:39:46
问题是,这一行什么也不做:
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo?[MPMediaItemPropertyTitle] =
"Title"即使这一行实际做了什么,您也会将nowPlayingInfo的副本作为一个单独的字典,然后写入该单独的字典。你不会写到实际的现在播放信息,这是你想要做的。
正确的方法是形成一个字典,然后将MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo设置为该字典。
例如:
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo =
[MPMediaItemPropertyTitle : "Title"](当然,字典可以有更多的条目。)
https://stackoverflow.com/questions/33977989
复制相似问题