単純なAUGraph(リモートIO、ミキサー、および1つのコールバック(マイク入力をファイルに書き込むため))を作成しましたが、思ったとおりに構成されているとは思いません。CAShow()を使用して実際に作成したものを理解しようとしていますが、その出力を、構成したと思うものやアプリの実行時に実際に何が起こっているのかを調整するのに苦労しています。
私のAUGraphは、次の接続で構成されていると思います(スピーカーからマイクへと逆方向に動作します)。
- ミキサーユニットの出力バスは、リモートIO出力エレメントの入力バスに接続されています。
- ミキサーユニットの入力に設定されたコールバック
- コールバックに接続されたリモートIO入力要素の出力バス
AUGraphを構成および初期化した後のCAShow()の出力は次のとおりです。
AudioUnitGraph 0x8EA7000:
Member Nodes:
node 1: 'auou' 'rioc' 'appl', instance 0xa87f530 O I
node 2: 'aumx' 'mcmx' 'appl', instance 0xa880420 O I
Connections:
node 2 bus 0 => node 1 bus 0 [ 1 ch, 44100 Hz, 'lpcm' (0x0000000C) 16-bit little-endian signed integer]
Input Callbacks:
{0x28c0, 0xa87df40} => node 2 bus 0 [1 ch, 44100 Hz]
CurrentState:
mLastUpdateError=0, eventsToProcess=F, isRunning=F
リモートIO入力要素の出力バスからコールバックへの接続を表示する必要があるようですが、表示されません。AUGraphの起動時に音声が聞こえ、コールバックが設計どおりにサンプルをExtAudioFileに書き込んでいるため、動作していることがわかります。
AUGraphs、Callbacks、またはその両方について基本的なことを誤解していると思います。