我正在使用 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 行被调用了两次:
- 一次在主线程上
- 在 messengerQueue 上 - 此时 MicrophoneNode 为 Nil
尽管它的beling调用的代码中只有一个地方。
这不会发生在任何其他类型的设备上。
如果有人对此行为有任何见解,我将不胜感激!
谢谢!