Вопрос 1 Мой первый вопрос касается синхронизации воспроизведения при использовании AVAudioPlayerNode
и AVAudioSequencer
для MIDI. В основном я пытаюсь воспроизвести что-то по MIDI, но они должны быть идеально синхронизированы.
Я знаю, что есть методы синхронизации для AVAudioPlayerNode
, но в секвенсоре, кажется, нет ничего подобного.
В настоящее время я пробовал использовать CAMediaTime() + delay
и usleep
в отдельных потоках, но, похоже, они не очень хорошо работают.
Вопрос 2. Я нажимаю на engine.inputNode
, чтобы получить запись отдельно от воспроизведения музыки. Однако, похоже, что запись начинается раньше. Когда я сравниваю записанные данные с исходным воспроизведением, разница составляет около 300 мс. Я мог бы начать запись на 300 мс позже, но даже тогда это не гарантирует точной синхронизации и, вероятно, будет зависеть от машины.
Итак, мой вопрос: что было бы хорошим способом гарантировать, что запись начнется именно в момент начала воспроизведения?