2

我正在使用 AvAudioEngine 在 ios 设备上录制音频。我正在使用以下代码开始点击输入节点

self.forcedMonoAudioFormat = [[AVAudioFormat alloc] initWithCommonFormat:AVAudioPCMFormatInt16 sampleRate:44100 channels:1 interleaved:NO];  


[self.mMicrophoneNode installTapOnBus:0 bufferSize:1024 format:self.forcedMonoAudioFormat  block:^(AVAudioPCMBuffer *buffer, AVAudioTime *when) {  

        if(isRecording) {  
               .  
               .  
               ,  
          }  

}];  

此代码适用于除 iPhone 4s 以外的所有设备。

在 iPhone 4s 上,该块未被调用..

另一个有趣的事情是 installtap 行被调用了两次:

  1. 一次在主线程上
  2. 在 messengerQueue 上 - 此时 MicrophoneNode 为 Nil

尽管它的beling调用的代码中只有一个地方。

这不会发生在任何其他类型的设备上。

如果有人对此行为有任何见解,我将不胜感激!

谢谢!

4

0 回答 0