Если ваши обратные вызовы RemoteIO слишком медленные и / или ваше приложение аварийно завершает работу и перестает обрабатывать звуковые обратные вызовы, аудио буферы RemoteIO могут быть переработаны, что может привести к тому, что некоторые из ваших старых буферов воспроизведения или, возможно, даже буферы записи, завершатсяповторяется или повторяется в недостаточном звуковом канале.Один из способов проверить это - закомментировать весь ваш код обработки (и отладочные отпечатки, которые также могут быть слишком медленными) внутри ваших обратных вызовов и посмотреть, устраняет ли это вашу проблему с «обратной связью».
Попробуйте сделать только простоеБуферные копии и / или другая быстрая обработка с минимальными накладными расходами как в вашей записи RemoteIO, так и в обратных вызовах воспроизведения.Не обрабатывайте данные внутри удаленного обратного вызова, вместо этого выполняйте рукопожатие, планируйте или ставьте в очередь работу, которая будет выполняться позже вне обратного вызова.
Если ваше приложение может каким-либо образом обнаружить, что оно не может поддерживать, оно должно остановить RemoteIOаудиоустройство (AudioOutputUnitStop).
Также попробуйте обнулить данные в каждом буфере записи после того, как вы закончите с ним, перед выходом из каждого обратного вызова записи.Были сообщения, что это может помочь исправить ошибку в некоторых очень старых версиях iPhoneOS.