2

フルートに似たものを実装しようとしています。マイクを吹くと、スピーカーから 1 つの音が鳴り始めます。このためVoiceProcessingIO、入力マイクから再生音(出力スピーカー)を差し引くために使用しようとしていました。

何らかの理由でVoiceProcessingIO、 と一緒に動作しないことに気付きましたAUSampler。Apple Sampled の「LoadPresetDemo」を変更し、次の行を変更しました。

cd.componentSubType = kAudioUnitSubType_RemoteIO 

cd.componentSubType = kAudioUnitSubType_VoiceProcessingIO;

その後、再生されたものが聞こえなくなります

次のオーディオユニットのスキームを使用した場合、同じ効果(音なし)がありました。

VoiceProcessingIO (input mic) --> processing function (if audio level > thrs 
                                              then feed MusicDeviceMIDIEvent)

AUSampler --> VoiceProcessingIO (output speaker)

ただし、以下のスキームを使用した場合:

VoiceProcessingIO (input mic) --> processing function (if audio level > thrs 
                                              then feed MusicDeviceMIDIEvent)

AUSampler --> RemoteIO (output speaker)

出力スピーカーの音量が大幅に低下しました。問題 It seams はこれに関連しています: Is it safe to use two audio units for maximum I/O in iOS?

ここからの例もテストしました: https://code.google.com/p/ios-coreaudio-example/downloads/detail?name=Aruts.zip&can=2&q=

また、AUSampler を使用せずに次のスキームで動作します。

VoiceProcessingIO (input mic) --> processing function --> VoiceProcessingIO (output speaker)

質問は次のとおりです。

VoiceProcessingIOと併用する方法はありますAUSamplerか?VoiceProcessingまたは、レンダー コールバックを介して出力するデータをフィードする唯一の方法はあり ますか?

4

0 に答える 0