我正在开发一个使用 AVPlayer、MPMediaItem 和 MPMediaQuery 的应用程序。只要iTunes匹配,它就可以工作。我们从 MPMediaQuery 开始,然后我们执行一些过滤,留下一些 MPMediaItems,然后我们一直在使用 AVPlayer,因为: 1.- 我们还在歌曲播放期间播放噪音 2.- 我们需要订阅来自 ipod 的播放/停止事件。
所有这些功能目前都在工作,除非 ipod 库启用了 iTunes 匹配。即使在播放 AVPlayer 状态时,也没有声音。很明显,它没有触发从 iCloud 下载歌曲。
我目前掌握的关于 iTunes 匹配的所有信息都是这篇文章: MPMediaItem 和 iTunes 匹配
这表明您可以使用 MPMusicPlayerController 播放调用来触发下载。由于上面给出的原因,我们不能使用这个类来控制我们自己的播放器。
我对如何解决这个问题有两个想法: A. 找到一种方法来检查一首歌曲是否已经下载并在库中可用 AVPlayer 播放。如果歌曲不可用,请告知用户我们不支持不可用的歌曲。B. 想办法在歌曲成为下一个要播放的项目之前触发下载歌曲。
我仍然找不到如何实施这些解决方案,也没有找到任何相关文档,所以我提交了我的应用程序并带有警告消息,以防止用户在使用 itunes match 时使用此应用程序。