iPhone: Аудиоанализ в объективе-c - PullRequest
0 голосов
/ 30 июля 2011

Я видел этот пост об аудиоанализе. Однако я действительно ненавижу иметь дело с C / C ++ и смотреть на пример кода Apple. Все расширения классов, использующих в них анализ, - .mm, а синтаксис, к которому я не привык.

Есть ли в любом случае написать основной код анализа (то есть получить необработанные значения дБ) в C / C ++, а затем создать оболочку (или некоторый промежуточный класс) для выполнения вызовов в target-c, чтобы получить это значение?

Это было бы так полезно, если это возможно.

Все, что я в основном хочу сделать, - это просто иметь UILabel, который обновляется (скажем, 10 раз в секунду) с текущим объемом в дБ - как только я получу, я смогу расширить его оттуда сам.

1 Ответ

0 голосов
/ 30 июля 2011

Возможно, конечно.

Сначала вам нужно решить, как выглядит ваша оболочка Objective C (т. Е. Какая функциональность она "экспортирует" из части C ++) и реализовать ее путем создания экземпляров объектов ивызов методов на уровне C ++.

В частности, в примере arioTouch единственным классом .mm является делегат приложения.Остальные файлы c и C ++ (.c и .cpp).В некотором смысле файл .mm может стать отправной точкой для создания оболочки.Тот факт, что он имеет расширение .mm, просто означает, что он использует код C ++.

Я думаю, что если вы удалите из приложения делегата все, что связано с протоколом делегата приложения и с представлением OpenGL,Вы автоматически получите свою обертку.

Кроме того, вы должны определить часть fft в applicationDidFinishLaunching и поместить ее в метод, который будет главной точкой входа вашей оболочки.

...