Я занимаюсь быстрым развитием музыкального приложения, и у меня возникла проблема при попытке воспроизвести альбом с помощью UITableViewRowAction.Первый альбом, который я играю, работает нормально, но когда второй альбом воспроизводится потом, я получаю исключение:
'NSRangeException', причина: 'Index (0) вне границ (0)'
на линии:
self.audioPlayer.nowPlayingItem = myCollectionToPlay.items[0]
Я всегда хочу воспроизвести пролистанный альбом с первого трека.У кого-нибудь есть предложения относительно того, почему это происходит?
let albumQuery: MPMediaQuery = MPMediaQuery.albums()
let audioPlayer = MPMusicPlayerController.systemMusicPlayer
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let play = UITableViewRowAction(style: .normal, title: "Play") { action, indexPath in
let albumTitle = self.allMusicInfo[indexPath.section].albums[indexPath.row].albumTitle
self.albumQuery.addFilterPredicate(MPMediaPropertyPredicate(
value: albumTitle,
forProperty: MPMediaItemPropertyAlbumTitle,
comparisonType: MPMediaPredicateComparison.equalTo
))
let myCollectionToPlay = MPMediaItemCollection(items: self.albumQuery.items!)
self.audioPlayer.setQueue(with: myCollectionToPlay)
self.audioPlayer.nowPlayingItem = myCollectionToPlay.items[0]
self.audioPlayer.prepareToPlay()
self.audioPlayer.play()
}