Проблема не может быть воспроизведена на основе кода, который вы показали. Поэтому, похоже, у вас есть дополнительная ссылка где-то на self.audioPlayer
, и проблема вызвана кодом, который вы не открыли нам .
Чтобы проверить эту теорию, давайте начнем сделая его глобальным. В этом вопросе нет необходимости.
Измените код так, чтобы он выглядел следующим образом (обратите внимание на изменения, чтобы сделать его локальным):
let avAssest = AVAsset(url: url)
let playerItem = AVPlayerItem(asset: avAssest)
let audioPlayer = AVPlayer(playerItem: playerItem) // *
let playerViewController = AVPlayerViewController()
playerViewController.player = audioPlayer
try? AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [])
self.present(playerViewController, animated: true, completion: {
audioPlayer.play() // *
})
Теперь удалите audioPlayer
свойство и, если ваш код не скомпилируется, закомментируйте все, что к нему относится, пока код не скомпилируется. Протестировать приложение;все хорошо. Теперь вернитесь назад и выясните, где в коде, который вы не показали нам , откуда возникла проблема.