我知道这个问题在 Stack Overflow 上到处都是,但其中大多数都是旧的,与我在这里要问的问题无关。
所以我有一个数组AVPlayerItems
和一个AVQueuePlayer
. 起初我将 AVQueuePlayer 设置为播放数组项:
func mediaPicker(mediaPicker: MPMediaPickerController!, didPickMediaItems mediaItemCollection: MPMediaItemCollection!) {
mediaItems = mediaItemCollection.items
for thisItem in mediaItems as [MPMediaItem] {
var itemUrl = thisItem.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL
var playerItem = AVPlayerItem(URL: itemUrl)
mediaArray.append(playerItem)
}
updateMetadata()
audioPlayer = AVQueuePlayer(items: mediaArray)
self.dismissViewControllerAnimated(true, completion: nil)
}
但是,例如,当用户添加一个新项目或删除一个项目时,我尝试更新播放器(与我最初设置它的方式相同),但它给了我错误。我想知道是否有任何解决方法或任何解决方案。这是用户删除歌曲的方式:
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete{
mediaArray.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
audioPlayer = AVQueuePlayer(items: mediaArray) //here gives the error
}
}
我正在为此自杀,所以,如果有人可以帮助我,我将不胜感激。