Управление жизненным циклом AudioKit при загрузке и воспроизведении последующих файлов примеров (AKWaveTable) - PullRequest
0 голосов
/ 06 ноября 2019

Я использую AKKaveTable AudioKit (ранее AKSamplePlayer) для воспроизведения семпла, на который пользователь нажимает из списка. (У меня есть потенциально сотни файлов здесь, поэтому я не хочу ничего предварительно загружать.) Фрагмент кода, который у меня есть ниже, работает нормально - один раз. У меня проблемы с пониманием того, как управлять жизненным циклом AudioKit и его выходов. Я пробовал несколько подходов к этому, но я в конечном итоге с исключениями или сбоями. Должен ли я звонить start() только один раз на AudioKit, а затем stop(), когда я нажимаю на другой звук? Кажется, это не публичный способ сообщить мне, если AudioKit остановлен или запущен. Или есть какой-то более простой способ сохранить AudioKit инициализированным, но заменить вывод на новый экземпляр AKWaveTable?

let file = try AKAudioFile(forReading: self.url)
let samplePlayer = AKWaveTable(file: file)

AudioKit.output = samplePlayer
try AudioKit.start()
samplePlayer.play()
...