AudioKit: Как синхронизировать AKPlayers с темпом? - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть два игрока. Темп = 120 ударов в минуту. Если я хочу синхронизировать двух игроков, то я делаю это:

let customHostTime = AVAudioTime.hostTime(forSeconds: AKSettings.bufferLength.duration * 2)
let customAudioTime = AVAudioTime(hostTime: mach_absolute_time() + customHostTime)
player1.isLooping = true
player1.buffering = .always
player2.isLooping = true
player2.buffering = .always

player1.play(at: customAudioTime)
player2.play(at: customAudioTime)

И это работает, игроки начинают одновременно и синхронно, попадая в бит. Что если мне нужно остановить player2? и затем через некоторое время, нажав кнопку, запустите ее снова, синхронно с player1, чтобы бит совпадал. Какие могут быть решения?

Использовать метроном? а в обратном вызове запустить player2? а как рассчитать время?

...