Одна вещь, которую я сразу заметил, заключается в том, что вы выделяете AudioBufferList в стеке, но устанавливаете mNumberBuffers равным 2. Хорошо использовать ABL в стеке, но если вы это сделаете, они могут содержать только один буфер.Но так как вы установили для клиента формат моно, это не ваша настоящая проблема.
Реальная проблема в том, что вы не передаете адрес fileRef в ExtAudioFileOpenURL - вы передаете значение - такнет никакого способа, чтобы вызов мог правильно инициализировать переменную.
Вызов должен выглядеть следующим образом:
CheckResult(ExtAudioFileOpenURL(inputFileURL, &fileRef), "ExtAudioFileOpenURL failed");
Я сделал это, скомпилировал ваш код, и все работало нормально.