Я должен использовать AVAudioPlayer
, поскольку он поддерживает скорость воспроизведения, но не поддерживает создание экземпляра AVAudioPlayer в режиме спящего устройства. Мое решение - создать массивы AVAudioPlayer до того, как устройство будет отключено. Когда текущее аудио закончено, вы должны получить следующий экземпляр из сохраненного массива.
Вы можете проверить это здесь
let players = [AVAudioPlayer]()
let index = 0
do {
player = [
try AVAudioPlayer(contentsOf: url1),
try AVAudioPlayer(contentsOf: url2),
try AVAudioPlayer(contentsOf: url3)
]
} catch {
print(error)
}
players[index].play()
func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
if flag {
index += 1
players[index].play()
}
}