Да, это возможно. Но это требует многократного использования аудио API и нескольких потоков.
Из-за ограничений в реальном времени потока обратного вызова буфера аудиоустройства вам придется выполнять преобразование сжатых файлов в необработанные сэмплы PCM вне обратного вызова аудиоустройства. Вы можете использовать Extended Audio File Services или AVAssetReader, чтобы выполнить преобразование в несжатые сэмплы вне обратного вызова Audio Unit. Однако вам не нужно распаковывать весь файл сразу. Короткий несжатый буфер в доли секунды, скорее всего, подойдет, если вы заполняете его достаточно далеко до уровня потребления буфера обратного вызова аудиоустройства. Это можно сделать в отдельном потоке, управляемом таймером, который отслеживает потребление буфера и соответственно распаковывает достаточно звука, возможно, в кольцевой буфер или циклический FIFO.
То, что вы в итоге получите, будет похоже на переписывание слоя Audio Queue API, но с большей возможностью настройки.