2

我已经从 speakHere 示例中复制了 AQRecorder 以及所有其他需要的文件。这样做之后,由于编译错误,我将链中使用它的所有类重命名为 .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] in SpeakHereController.o

“AQPlayer::PauseQueue()”,引用自:-[SpeakHereController pausePlayQueue] in SpeakHereController.o

“AQPlayer::DisposeQueue(unsigned char)”,引用自:-[SpeakHereController stopRecord] in SpeakHereController.o

“AQPlayer::CreateQueueForFile(__CFString const*)”,引用自:-[SpeakHereController stopRecord] in SpeakHereController.o

“AQPlayer::StartQueue(signed char)”,引用自:-[SpeakHereController play:] in SpeakHereController.o interruptListener(void*, unsigned long) in SpeakHereController.o

“AQPlayer::AQPlayer()”,引用自:-[SpeakHereController awakeFromNib] in SpeakHereController.o

“AQPlayer::~AQPlayer()”,引用自:-[SpeakHereController dealloc] in SpeakHereController.o

4

1 回答 1

1

我最终使用了这个

   SpeakHereController * recorder;
    recorder = [[SpeakHereController alloc]init];
    [recorder awakeFromNib];

但是我只需要记录器,为此我必须从文件中注释掉所有 AQPlayer 引用。无论出于何种原因,它的播放方法都有一堆链接器错误。

调用 awakeFromNib 的原因是该方法很像 init,初始化 AQRecorder/AudioQueue 的所有设置

于 2012-07-05T17:00:00.630 回答