У меня есть два игрока. Темп = 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? а как рассчитать время?