這些音樂文件由MPMediaItem實例表示。來接他們,你可以使用一個MPMediaQuery,如下:
let mediaItems = MPMediaQuery.songsQuery().items
此時,已包含在音樂應用程序庫中的所有歌曲,所以你可以設置播放列表後,用MPMusicPlayerController發揮他們隊列:
let mediaCollection = MPMediaItemCollection(items: mediaItems)
let player = MPMusicPlayerController.iPodMusicPlayer()
player.setQueueWithItemCollection(mediaCollection)
player.play()
您可能需要按流派,藝術家,專輯等過濾歌曲。在這種情況下,您應該在獲取媒體項目之前對查詢應用謂詞:
var query = MPMediaQuery.songsQuery()
let predicateByGenre = MPMediaPropertyPredicate(value: "Rock", forProperty: MPMediaItemPropertyGenre)
query.filterPredicates = NSSet(object: predicateByGenre)
let mediaCollection = MPMediaItemCollection(items: query.items)
let player = MPMusicPlayerController.iPodMusicPlayer()
player.setQueueWithItemCollection(mediaCollection)
player.play()
乾杯!
Linox嗨,感謝您的例子,我曾嘗試 進口的MediaPlayer 讓音樂= MPMediaQuery.songsQuery() 在操場上,但得到一個異常EXC_BAD_ACCESS碼= 1 你知道,如果操場支持呢? – rpw 2014-10-01 11:14:36
由於您必須有應用程序上下文才能訪問音樂庫,因此無法在操場上使用。嘗試在viewDidLoad()方法中實現此代碼。如果您的答案適合您,請不要忘記標記我的答案是正確的。乾杯! – Linox83 2014-10-01 15:41:47
嗨Linox,我曾嘗試在viewDidLoad中 ,但我的第一線 - >讓mediaItems = MPMediaQuery.songsQuery()項 總是空(無) – rpw 2014-10-02 11:18:56