从iOS上的音乐库中获取所有歌曲

时间:2015-03-18 06:25:05

标签: ios xcode swift mpmediaquery

我正在编写可播放音乐的小应用程序。要获取所有歌曲我使用下面的代码

 var songsArray: [MPMediaItem] = [MPMediaItem]()
 var mediaQuery = MPMediaQuery()
 songsArray = MPMediaQuery.songsQuery().items as [MPMediaItem]

 for songItem in songsArray {            
     var song: myMusicItem? = myMusicItem(songTitle: songItem.title, songAlbum: songItem.albumTitle, songArtist: songItem.albumArtist, songGenre: songItem.genre)

     retArray.append(song!)
 }

 println(String(format:"Number of songs:\t%i", retArray.count))

问题是retArray项目中的项目数量多于实际数量。有谁知道为什么会出现这种情况?

1 个答案:

答案 0 :(得分:0)

正如您在评论中所建议的那样,默认情况下包含的iCloud媒体项可能会有所不同。

尝试将此过滤器谓词添加到您的查询中,以便不包含iCloud项目:

query.addFilterPredicate(MPMediaPropertyPredicate(value: false, forProperty: MPMediaItemPropertyIsCloudItem))