Проблема в том, что NSLog слишком медленный по сравнению с частотой дискретизации звука, и, таким образом, блокирует обратный вызов аудио от вызова достаточно часто.Таким образом, вы теряете почти все образцы.Возьмите все NSLogs из звукового обратного вызова и просто увеличьте счетчик, чтобы посчитать ваши выборки.
Если вы хотите что-то сделать с NSLog, выясните, как это сделать вне звукового обратного вызова.* Ваш образец кода, кажется, запрашивает 44100 выборок в секунду от аудиоустройства.Проверьте возвращаемое значение ошибки, чтобы убедиться.
Кроме того, число выборок в буфере не включает strlen ().