didSelectRowAt indexPath play Аудио

Мне нужна ваша помощь! Я разрабатываю приложение Audio Player с API Jukebox. Я использую forSelectRowAt indexPath для воспроизведения текущего потока. Мой код работает, но он не останавливает поток перед воспроизведением другого с помощью ячейки. Я был бы признателен за любую помощь! Благодаря!

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { jukebox = Jukebox(delegate: self as? JukeboxDelegate, items: [ JukeboxItem(URL: NSURL(string:audio_url[indexPath.row])! as URL) ]) jukebox.play() } 

Попробуйте это и посмотрите

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { stopJukeBox() jukebox = Jukebox(delegate: self as? JukeboxDelegate, items: [ JukeboxItem(URL: NSURL(string:audio_url[indexPath.row])! as URL) ]) playJukeBox() } func stopJukeBox(){ if jukebox != nil { jukebox.stop() } } func playJukeBox(){ if jukebox != nil { jukebox.play() } } 

или вы можете напрямую управлять воспроизведением и останавливаться в функции didSelect

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { // Stop if jukebox != nil { jukebox.stop() } jukebox = Jukebox(delegate: self as? JukeboxDelegate, items: [ JukeboxItem(URL: NSURL(string:audio_url[indexPath.row])! as URL) ]) // play if jukebox != nil { jukebox.play() } }