首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPNowPlayingInfoCenter信息被AVPlayer覆盖

MPNowPlayingInfoCenter信息被AVPlayer覆盖
EN

Stack Overflow用户
提问于 2015-11-29 00:20:37
回答 1查看 1.4K关注 0票数 0

我正在运行一个iOS应用程序,该应用程序使用AVPlayer来播放由AVPlayerItems表示的歌曲。

我尝试过设置MPNowPlayingInfoCenter.defaultCenter()的MPNowPlayingInfoCenter.defaultCenter属性,但是由于它需要更新其他信息,比如elapsedTime和playbackDuration,所以信息似乎会立即被AVPlayer覆盖。

即使在程序执行之后

代码语言:javascript
复制
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的类。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-29 00:39:46

问题是,这一行什么也不做:

代码语言:javascript
复制
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo?[MPMediaItemPropertyTitle] =
    "Title"

即使这一行实际做了什么,您也会将nowPlayingInfo的副本作为一个单独的字典,然后写入该单独的字典。你不会写到实际的现在播放信息,这是你想要做的。

正确的方法是形成一个字典,然后将MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo设置为该字典。

例如:

代码语言:javascript
复制
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = 
    [MPMediaItemPropertyTitle : "Title"]

(当然,字典可以有更多的条目。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33977989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档