用途:本技能说明在 Apple Music(MusicKit)中播放内容时,Now Playing 信息的自动与手动集成方式,重点是用 ApplicationMusicPlayer 播放时系统会自动向 MPNowPlayingInfoCenter 发布信息。
自动发布内容:使用 ApplicationMusicPlayer 时,曲名、艺人、专辑、Apple 专辑封面、时长与已播放时间、播放速率(播放/暂停状态)由系统自动更新,无需手动设置 nowPlayingInfo。
非自动内容:自定义元数据(如章节标记、自定义艺人备注)、超出标准控制的远程命令定制,以及将 MusicKit 内容与自有内容混播,需要自行处理。
授权与订阅:用 MusicAuthorization.request() 请求授权,currentStatus 可取 .authorized、.denied、.notDetermined、.restricted;用 MusicSubscription.current 的 canPlayCatalogContent 判断订阅,并可通过 MusicSubscription.subscriptionUpdates 观察变化。无订阅时可回退到 30 秒预览(song.previewAssets)。
用法要点:设置 player.queue(可为单曲、专辑、播放列表或数组,支持 startingAt),调用 try await player.play();通过观察 playbackStatus、queue.currentEntry 获取状态与曲目信息;可用 skipToNextEntry、skipToPreviousEntry、restartCurrentEntry、queue.insert 管理队列,设置 shuffleMode 与 repeatMode。
混合应用:当同时播放 Apple Music 与自有内容时,切换播放源;自有内容用 AVPlayer 播放并手动更新 Now Playing。常见错误是在 MusicKit 播放后手动覆盖 nowPlayingInfo,会清除系统自动数据。仅当需要附加元数据或混播自有内容时才手动覆盖。
限制:资料未提供具体价格、平台版本要求与完整 API 清单;示例代码应保持原样使用。