フルートに似たものを実装しようとしています。マイクを吹くと、スピーカーから 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
または、レンダー コールバックを介して出力するデータをフィードする唯一の方法はあり
ますか?