在一个函数中,如何初始化MPMusicPlayerMediaItemQueueDescriptor,作为Music Kit前置方法部分的第一步?我认为我需要我的媒体查询才能成为队列描述符,并且认为我需要对其进行初始化,但不确定如何!
[该类的苹果文档(https://developer.apple.com/documentation/mediaplayer/mpmusicplayermediaitemqueuedescriptor)建议我的函数应像这样:
func playPlaylistNext(chosenPlaylist: String?) {
var QueueDescriptor: MPMusicPlayerMediaItemQueueDescriptor
let myMediaQuery = MPMediaQuery.songs()
let predicateFilter = MPMediaPropertyPredicate(value: chosenPlaylist, forProperty: MPMediaPlaylistPropertyName)
myMediaQuery.filterPredicates = NSSet(object: predicateFilter) as? Set<MPMediaPredicate>
init(query: myMediaQuery) {
// What needs to go in here
}
musicPlayerController.prepend(QueueDescriptor)
}
}
答案:
let myMediaQuery = MPMediaQuery.songs()
let predicateFilter = MPMediaPropertyPredicate(value: chosenPlaylist, forProperty: MPMediaPlaylistPropertyName)
myMediaQuery.filterPredicates = NSSet(object: predicateFilter) as? Set<MPMediaPredicate>
let qd: MPMusicPlayerMediaItemQueueDescriptor = .init(query: myMediaQuery)
musicPlayerController.prepend(qd)