首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iTunes Match + AVplayer + MPMediaQuery不工作

iTunes Match + AVplayer + MPMediaQuery不工作
EN

Stack Overflow用户
提问于 2011-12-20 20:05:46
回答 2查看 2.8K关注 0票数 3

我正在开发一个应用程序,使AVPlayer,MPMediaItem和MPMediaQuery的使用。只要Itunes匹配,它就能正常工作。我们从一个MPMediaQuery开始,然后我们执行一些过滤,留下一些MPMediaItems,然后我们一直使用AVPlayer,因为: 1.-我们在歌曲播放期间也播放噪音2。-我们需要暂停播放/停止来自ipod的事件。

所有这些功能目前都在运行,除非ipod库启用了itunes match。即使AVPlayer状态为正在播放,也不会发出声音。很明显,它不会触发从iCloud下载歌曲。

到目前为止,我所有关于itunes match的信息都是这篇文章:MPMediaItem and iTunes Match

声明您可以通过使用MPMusicPlayerController play调用来触发下载。由于上述原因,我们不能使用这个类来控制我们自己的玩家。

关于如何解决这个问题,我有两个想法: A.找到一种方法来检查一首歌是否已经下载并在库中可用来使用AVPlayer播放。如果歌曲不可用,让用户知道我们不支持歌曲不可用。B.在歌曲成为下一个要播放的项目之前,找到一种触发歌曲下载的方法。

我仍然找不到如何实现这些解决方案,我也没有找到任何相关的文档,所以我提交了我的应用程序和警告消息,以防止用户使用该应用程序,如果他们正在使用itunes match。

EN

回答 2

Stack Overflow用户

发布于 2012-12-06 16:53:26

在iOS 6和更高版本上,你可以使用[[item valueForProperty:MPMediaItemPropertyIsCloudItem] boolValue]来检查某个项目是否已经下载。

票数 3
EN

Stack Overflow用户

发布于 2012-02-14 02:00:56

A.找到一种方法来检查一首歌曲是否已经下载并且可以使用AVPlayer在库中播放。如果歌曲不可用,让用户知道我们不支持歌曲不可用。

这并不完美,但它在大多数情况下都是有效的。从iTunes Match下载的歌曲将是免费的。因此,您可以检查资产DRM标志,如果它不能导出,则需要下载。有声书/播客可能会出现假阳性,但你基本上是安全的。

代码语言:javascript
复制
MPMediaItem* item
NSURL* url = [item valueForProperty:MPMediaItemPropertyAssetURL];
AVURLAsset* assetToLoad = [[AVURLAsset alloc] initWithURL:url options:nil];
bool protectedCon = assetToLoad.hasProtectedContent;
bool exportable = true;

if (gApp.mSysVersionInt >= 5) {
    exportable = assetToLoad.exportable;    //4.3+
}

B.找到一种方法,在歌曲成为下一个要播放的项目之前触发歌曲的下载。

你可以尝试在静音的MPMusicPlayerController中这样做,但没有办法跟踪歌曲何时下载,有时需要很长时间。

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

https://stackoverflow.com/questions/8575170

复制
相关文章

相似问题

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