Я занимаюсь разработкой приложения для виртуальных инструментов для iOS и пытаюсь реализовать функцию записи, чтобы приложение могло записывать и воспроизводить музыку, которую пользователь делает с помощью инструмента. В настоящее время я использую звуковой движок CocosDenshion (с несколькими из моих собственных хаков, включающих фейды и т. Д.), Который основан на OpenAL. Судя по моим исследованиям в сети, у меня есть два варианта:
- Ведите запись входных данных пользователя (т. Е. Какие ноты были воспроизведены на какой громкости), чтобы приложение могло воссоздать звук (но это нельзя передать / отправить по электронной почте).
- Взломайте мой собственный низкоуровневый звуковой движок с помощью AudioUnits и, в частности, RemoteIO, чтобы я вручную смешал все звуки и заполнил конечный выходной буфер вручную и, следовательно, смог сохранить указанный буфер в файл. Этим можно будет поделиться по электронной почте и т. Д.
Я реализовал обратный вызов RemoteIO для рендеринга выходного буфера в надежде, что он даст мне ранее воспроизведенные данные в буфере, но, увы, буфер всегда все 00.
Итак, мой вопрос: есть ли более простой способ прослушать / прослушать то, что мое приложение отправляет в динамики, чем мой вариант 2 выше?
Заранее спасибо за помощь!