Как использовать AQRecorder из приведенного здесь примера
Я скопировал AQRecorder из примера speakHere вместе со всеми остальными необходимыми файлами. После этого я переименовал все классы в цепочке, использующие его, в.mm из-за ошибок компиляции, которые, похоже, сейчас устранены. Однако я все еще не могу понять, как использовать класс AQRecorder. В этом примере есть еще один класс, который называется SpeakHereController, но он тоже не работает. Вот код для моей последней попытки:
#import "AQRecorder.h"
AQRecorder recorder;
[recorder startRecord];
ошибка: неверный тип получателя 'AQRecorder'
Я знаю, что это не сработает по нескольким причинам, одна из которых не вызывает конструктор, и я считаю, что это должен быть указатель. У меня есть много разных вариантов, и, как я уже сказал, я также пытался использовать SpeakHereController:
SpeakHereController * recorder;
recorder = [[SpeakHereController alloc]init];
[recorder startRecord];
Однако это дает ошибку:
Неопределенные символы для архитектуры i386: "AQPlayer::StopQueue()", на которую ссылаются из: -[SpeakHereController stopPlayQueue] в SpeakHereController.o
"AQPlayer:: PauseQueue ()", на который ссылаются из: -[SpeakHereController pausePlayQueue] в SpeakHereController.o
"AQPlayer:: DisposeQueue (unsigned char)", на который ссылаются из: -[SpeakHereController stopRecord] в SpeakHereController.o
"AQPlayer:: CreateQueueForFile (__ CFString const *)", на который ссылаются из: -[SpeakHereController stopRecord] в SpeakHereController.o
"AQPlayer:: StartQueue (подписанный символ)", на который ссылаются из: -[SpeakHereController play:] в SpeakHereController.o interruptListener(void*, unsigned long) в SpeakHereController.o
"AQPlayer:: AQPlayer ()", на который ссылаются из: -[SpeakHereController awakeFromNib] в SpeakHereController.o
"AQPlayer:: ~ AQPlayer ()", на который ссылаются из: -[SpeakHereController dealloc] в SpeakHereController.o
1 ответ
Я закончил тем, что использовал это
SpeakHereController * recorder;
recorder = [[SpeakHereController alloc]init];
[recorder awakeFromNib];
Однако мне нужен был только рекордер, и чтобы это работало, мне пришлось закомментировать все ссылки на AQPlayer из файла. По какой-то причине в методах воспроизведения было множество ошибок компоновщика.
причина вызова awakeFromNib заключается в том, что метод похож на init, инициализируя все настройки для AQRecorder/AudioQueue