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 では、ブロックは呼び出されません。

もう 1 つの興味深い点は、installtap 行が 2 回呼び出されることです。

  1. メインスレッドで一度
  2. MessengerQueue で - その時点で、MicrophoneNode は Nil です

ただし、コード内でその beling が呼び出した場所は 1 つだけです。

これは、他のタイプのデバイスでは発生しません。

誰かがこの動作について何か洞察を持っているなら、私はそれを感謝します!

ありがとう!

4

0 に答える 0