在iOS中,我能访问iTunes歌曲列表吗?

8
我正在寻找一种编程方式(即非通过UI界面),从iOS应用中访问用户的iTunes音乐库。
(是的,我知道苹果不鼓励使用其他iPod接口应用程序,但这不是问题 :)
我想做的是:
- 收集歌曲名称列表。 - 让我的应用程序对它们进行重新排列。 - 让用户猜出原来的歌曲名称。 - 如果他们猜对了,我就播放一小段歌曲。
(那不是我的真实应用程序,但它包含了我需要的所有组件。)我要询问的部分是:如何获取歌曲名称列表,并且在给定歌曲名的情况下如何获取媒体以播放它?
我认为AVAssetReader可以让我播放一首歌曲,一旦我有了它的名字,所以我可以自己查找它(如果可以提供指针,将获得额外的奖励!)--所以最基本的问题是:如何从iOS中访问用户的iTunes库以获取歌曲列表?
2个回答

6

您需要使用MPMediaQuery来获取所有歌曲的NSArray。请查看此链接

如果要播放歌曲,建议使用AVPlayer。


5

请查看文档,特别是“以编程方式获取媒体项目”一节。

如果媒体项选择器没有提供您想要的控件,则可以使用此API中的数据库访问类。这些类旨在让您创建任意复杂的查询。例如,您可以检索包含特定单词或短语的标题的特定类型的所有歌曲。

使用编程访问是一个两步过程:

配置查询。请求查询以检索其匹配的媒体项目。媒体查询是对从设备iPod库中检索什么以及如何排列这些检索到的项目的描述。它有两个属性需要配置:

过滤器是要检索的内容的描述。过滤器是可选的;无过滤器的查询匹配整个iPod库。分组类型是一个可选键,指定用于检索的媒体项目集合的排列方式。更详细地说,过滤器可以像您的应用程序要求的那样简单或复杂。它由一个或多个媒体属性谓词实例组成。媒体属性谓词是针对每个媒体项目测试逻辑条件的语句。满足过滤器条件的项目在调用查询时从iPod库中检索。

可选的分组类型指定集合的排列和排序以及每个集合内媒体项目的排序。例如,使用“专辑”分组类型会导致返回的媒体项目按专辑分组,每个专辑的歌曲按曲目顺序排序。


链接已损坏。 - BillP3rd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接