私は iPad 用の VOIP アプリを作成しています (現在 2&3 をターゲットにしています)。
私は元々、kAudioUnitSubtype_RemoteIO ユニットを使用して、Audio Unit API を使用してオーディオ コードを作成しました。これはうまくいきましたが、当然のことながらエコーが問題でした。kAudioUnitSubType_VoiceProcessingIO ユニットの使用に切り替えて、組み込みのエコー抑制を使用しようとしました。これは iOS 6 (iPad 3) では非常にうまく機能しますが、iOS 5.1 (iPad 2) で同じコードを使用すると、マイク入力にホワイト ノイズが発生します。
ドキュメントには、iOS 3.0以降で利用できるはずだと書かれているだけです
ここでの重要な違いは iOS のバージョンのようです。2 つの iPhone 4S でアプリを実行してみました。1 つは iOS 6 で正常に聞こえ、もう 1 つは iOS 5.1 でホワイト ノイズのように聞こえました。
私の ASBD は次のようになります。
typedef int16_t sample_t;
#define AUDIO_BUFFER_SAMPLE_RATE 48000
#define FORMAT_FLAGS (kAudioFormatFlagsIsSignedInteger | kAudioFormatFlagsIsNonInterleaved)
#define CHANNELS_PER_FRAME 1
...
const size_t bytes_per_sample = sizeof(sample_t);
const int eight_bits_per_byte = 8;
AudioStreamBasicDescription streamFormat;
streamFormat.mFormatID = kAudioFormatLinearPCM;
streamFormat.mSampleRate = AUDIO_BUFFER_SAMPLE_RATE;
streamFormat.mFormatFlags = FORMAT_FLAGS;
streamFormat.mChannelsPerFrame = CHANNELS_PER_FRAME;
streamFormat.mBytesPerFrame = bytes_per_sample * CHANNELS_PER_FRAME;
streamFormat.mBitsPerChannel = bytes_per_sample * eight_bits_per_byte;
streamFormat.mFramesPerPacket = 1;
streamFormat.mBytesPerPacket = streamFormat.mBytesPerFrame * streamFormat.mFramesPerPacket;
streamFormat.mReserved = 0;
iOS 5.1 で kAudioUnitSubType_VoiceProcessingIO を動作させた人はいますか?
この IO に関する重大なドキュメントを知っている人はいますか?