Я хочу создать аудиоплеер. Я получаю треки из локальной директории устройства и помещаю их в массив playerQueue с типом [AVPlayerItem]. TableView был создан с рядами дорожек. Я хочу нажать на любую строку, и трек должен воспроизводиться - это работает. После окончания текущего трека автоматически должно начаться воспроизведение следующего трека. Но я не могу этого сделать. Также у меня не получается сделать это с помощью AVQueuePlayer — плейлист начинает проигрываться с самого начала. Теперь мой код выглядит так:
class TableViewController: UITableViewController {
...
var player: AVPlayer!
var playerQueue: [AVPlayerItem] = []
...
//Creating playerQueue from directory
private func createPlayerQueue(with content: [String], from directory: String?) -> [AVPlayerItem] {
var playerQueue: [AVPlayerItem] = []
content.forEach { (url) in
let fileUrl = directory! + "/" + url
let asset = AVAsset(url: URL(fileURLWithPath: fileUrl))
let item = AVPlayerItem(asset: asset)
playerQueue.append(item)
}
return playerQueue
}
....
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let fullPath: String = currentDirectory! + "/" + content[indexPath.row]
playerQueue = createPlayerQueue(with: content, from: currentDirectory)
let currentItem = playerQueue[indexPath.row]
player = AVPlayer(playerItem: currentItem)
player.play()
}