iOS 16中使用MPMediaItemArtwork设置控制中心封面失效问题
解决iOS 16控制中心不显示媒体封面的问题
- 替换
MPMediaItemArtwork初始化方式:iOS 13及以后官方推荐直接使用init(image:)构造方法,旧的闭包回调方式在iOS 16存在兼容性问题,修改代码如下:
if let image = UIImage(named: "myCover") { let artwork = MPMediaItemArtwork(image: image) nowPlayingInfo[MPMediaItemPropertyArtwork] = artwork }
- 确保完整同步播放信息到控制中心:修改
nowPlayingInfo字典后,必须将其赋值给MPNowPlayingInfoCenter的默认实例,完整示例代码:
// 初始化播放信息字典,先填充必要的媒体元数据 var nowPlayingInfo = [String: Any]() nowPlayingInfo[MPMediaItemPropertyTitle] = "媒体标题" nowPlayingInfo[MPMediaItemPropertyArtist] = "艺术家名称" // 设置封面图片 if let image = UIImage(named: "myCover") { let artwork = MPMediaItemArtwork(image: image) nowPlayingInfo[MPMediaItemPropertyArtwork] = artwork } // 同步到系统控制中心 MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo
检查图片规格:控制中心要求封面图片尺寸至少为
600x600px,过小的图片可能无法正常显示。确认图片资源配置:确保
myCover图片已添加到项目中,且在Target Membership里勾选了当前应用目标。
内容的提问来源于stack exchange,提问作者user18908963
相关产品推荐
相关产品推荐

