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

时间:2012-03-29 01:47:08

标签: ios itunes

我正在寻找一种以编程方式(即。,而不是通过UI)从我的iOS应用程序访问用户iTunes音乐库的方法。

(是的,我知道Apple不鼓励使用其他iPod接口应用程序。这不是问题:)

我想做的是:

  
      
  • 收集歌曲名称列表。
  •   
  • 让我的应用制作一个字谜。
  •   
  • 让用户猜出原始歌曲名称。
  •   
  • 如果他们猜对了,我会播放这首歌的片段。
  •   

(这不是我真正的应用程序,但它包含了我需要的所有部分。)我要问的部分是:如何获取歌曲名称列表,并给出歌曲名称,如何获取媒体玩吗?

我认为AVAssetReader会让我播放一首歌,一旦我有了它的名字,所以我可以自己查看(虽然在那里指点奖励积分!) - 所以底线问题是:如何从iOS用户的iTunes资料库中获取歌曲名称列表?

2 个答案:

答案 0 :(得分:6)

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

要播放这首歌,我建议使用AVPlayer。

答案 1 :(得分:5)

Check out the docs,尤其是标题为“以编程方式获取媒体项目”的部分。

  

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

     

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

     

配置查询。请求查询检索其匹配的媒体项。   媒体查询是对从设备检索内容的描述   iPod库以及如何安排检索到的项目。它有   要配置的两个属性:

     

过滤器是要检索的内容的说明。过滤器是   可选的;无过滤查询与整个iPod库匹配。该   分组类型是一个可选键,指定要使用的排列   用于检索的媒体项集合。放大一点,   过滤器可以像您的应用程序一样简单或复杂。它   由一个或多个媒体属性谓词实例组成。一个   media属性谓词是要测试的逻辑条件的陈述   每个媒体项目反对。满足过滤器的项目是   在调用查询时从iPod库中检索。

     

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