Музыкальный проигрыватель Swift «NSRangeException», причина: «Индекс (0) выходит за пределы (0)» - PullRequest
0 голосов
/ 24 мая 2018

Я занимаюсь быстрым развитием музыкального приложения, и у меня возникла проблема при попытке воспроизвести альбом с помощью 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()

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...