1

単純な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、またはその両方について基本的なことを誤解していると思います。

4

2 に答える 2

2

RemoteIO入力(マイクなど)からプログラムの入力コールバックへの接続は、完全にAUGraphの外部にあるため、CAShow()出力には表示されません。AUGraphに関する限り、エントリポイントはミキサーのレンダリングコールバックであり、出口ポイントはRemoteIO出力です。AUGraphには、プログラムがどのようにレイアウトされているか、およびサンプルがレンダーコールバックでミキサーに送られる前に何が起こるかについての知識がありません。

ASCIIの場合(リングバッファを使用していると仮定):

Outside AUGraph                   Inside AUGraph
+-------------------------------+-----------------------------------------+
| RemoteIO Input -> Ring Buffer | Ring Buffer -> Mixer -> RemoteIO Output |
+-------------------------------+-----------------------------------------+
于 2012-12-05T22:18:10.007 に答える
0

「コールバックに接続されたリモートIO入力要素の出力バス」-意味を説明できますか?私の知る限り、これは問題ではないので、それがあなたの問題の原因のようです。

ミキサー入力コールバックでは、remoteIO入力からサンプルにアクセスしてミキサーにフィードできますが、少なくともAUGraphに関する限り、それらは接続されていません。

あなたがいくつかのコードを投稿した場合、私は答えを更新します。

于 2012-12-05T18:40:28.593 に答える