マルチチャンネル ミキサー ユニットとサブタイプ AudioFilePlayer のジェネレーターの 2 つのオーディオ ユニットを指定してインスタンス化しました。
ミキサー入力に設定した ASBD と一致するように、filePlayer の出力の ASBD を設定する必要があると考えていたでしょう。しかし、filePlayer の出力を設定しようとすると、kAudioUnitErr_FormatNotSupported (-10868) エラーが発生します。
これは、ミキサー入力に設定したストリーム フォーマット (成功) であり、filePlayer にも設定しようとしています (これは、Apple の mixerhost サンプル プロジェクトからコピーされたモノストリーム フォーマットです)。
Sample Rate: 44100
Format ID: lpcm
Format Flags: C
Bytes per Packet: 2
Frames per Packet: 1
Bytes per Frame: 2
Channels per Frame: 1
Bits per Channel: 16
これをトラブルシューティングする過程で、「ネイティブ」に設定されている形式についてfilePlayer AUに問い合わせました。これが返されるものです:
Sample Rate: 44100
Format ID: lpcm
Format Flags: 29
Bytes per Packet: 4
Frames per Packet: 1
Bytes per Frame: 4
Channels per Frame: 2
Bits per Channel: 32
私が見つけたすべてのサンプル コードは、filePlayer ユニットの出力をエフェクト ユニットに送信し、filePlayer の出力をエフェクト ユニットに設定された ASBD と一致するように設定します。私がエフェクトユニットを持っていないことを考えると、filePlayer の出力をミキサー入力の ASBD に設定することが正しい (そして必要な) ことのように思えます。