Функция записи приложения Virtual Instrument с RemoteIO - PullRequest
2 голосов
/ 19 мая 2011

Я занимаюсь разработкой приложения для виртуальных инструментов для iOS и пытаюсь реализовать функцию записи, чтобы приложение могло записывать и воспроизводить музыку, которую пользователь делает с помощью инструмента. В настоящее время я использую звуковой движок CocosDenshion (с несколькими из моих собственных хаков, включающих фейды и т. Д.), Который основан на OpenAL. Судя по моим исследованиям в сети, у меня есть два варианта:

  1. Ведите запись входных данных пользователя (т. Е. Какие ноты были воспроизведены на какой громкости), чтобы приложение могло воссоздать звук (но это нельзя передать / отправить по электронной почте).
  2. Взломайте мой собственный низкоуровневый звуковой движок с помощью AudioUnits и, в частности, RemoteIO, чтобы я вручную смешал все звуки и заполнил конечный выходной буфер вручную и, следовательно, смог сохранить указанный буфер в файл. Этим можно будет поделиться по электронной почте и т. Д.

Я реализовал обратный вызов RemoteIO для рендеринга выходного буфера в надежде, что он даст мне ранее воспроизведенные данные в буфере, но, увы, буфер всегда все 00.

Итак, мой вопрос: есть ли более простой способ прослушать / прослушать то, что мое приложение отправляет в динамики, чем мой вариант 2 выше?

Заранее спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 19 мая 2011

Я думаю, что вы должны использовать remoteIO, у меня был похожий проект несколько месяцев назад, и я хотел как можно больше избегать remoteIO и аудиоустройств, но в конце концов, после того, как я написал тонны кода и прочитал множество документов от сторонних разработчиковбиблиотеки (включая cocosdenshion) Я все равно использую аудиоустройства.Более того, это не так сложно настроить и работать с ним.Однако, если вы ищете библиотеку, которая сделает большую часть работы за вас, вы должны найти библиотеку, написанную на верхушке основного звука, не открытую.

0 голосов
/ 19 мая 2011

Возможно, вы захотите взглянуть на AudioCopy Framework . Он делает многое из того, что вы, похоже, ищете, и избавит вас от возможного переизобретения некоторых колес.

...