Вы имеете в виду приложение, которое создаете сами? Если да, вы можете просто сохранить визуализированный сигнал (возможно, закодированный / сжатый для экономии места) для последующего воспроизведения. (см .: Расширенные службы аудиофайлов , он может записывать тот же AudioBufferList в файл, который вы будете воспроизводить на RemoteAudio Unit при воспроизведении аудио в приложении Instrument) *
[Редактировать: удалены комментарии по записи аудио выхода стороннего приложения ...]
С AVFoundation, которую вы используете в настоящее время, вы всегда работаете на уровне звуковых файлов. Ваш код никогда не видит фактический звуковой сигнал. Таким образом, вы не можете «захватить» аудиосигнал, который генерирует ваше приложение при его использовании. Кроме того, AVAudioPlayer не предоставляет никаких средств для получения окончательного сигнала. Если вы используете несколько проигрывателей AVAudio для воспроизведения нескольких звуков одновременно, вы также не сможете получить смешанный сигнал.
Увы, вам, вероятно, нужно использовать CoreAudio , который является гораздо более низким уровнем интерфейса.
Я хотел бы предложить альтернативный подход: вместо записи аудиовыхода, почему бы не записать последовательность действий вместе с их временем, которое приводит к воспроизведению звука? Запишите эту последовательность событий в файл и прочитайте ее обратно, чтобы воспроизвести «производительность» - это немного похоже на ваш собственный MIDI-секвенсор:)