MultiChannelMixerを使う3件の返信いままでiPhoneのAudioUnitはRemoteIOしか使っていなくて、新規アプリ開発に向けてMixerのUnitを使ってみようと思ったら、なかなかうまくいかなくてハマってしまったのでメモしておきます。以下が、MultiChannelMixerの初期化のコードになります。}}設定の順番が重要です。初期化後に、プロパティの取得やパラメータの取得・設定あとは、AUGraphでつなぐなり、RemoteIOのコールバック内でAudioUnitRenderするなりって感じですね。ミキサーユニットをMacで使う場合のコードが、アップルのQ&Aのページにのっていたりするんですが、そこにはインプットバスを設定するプロパティがElementCountじゃなくてBusCountになっていて、iPhoneでは使えないのがハマった原因でした。kAudioUnitProperty_ElementCountって定義されてます。ミキサーユニットにはオーディオフォーマットのコンバーターが組み込まれているので便利ですね。今回のコードだと、インプットに16bit・44.1kHz・ステレオのデータをそのまま渡せば8.24の固定小数点に勝手に変換してくれます。OS3.0だとRemoteIOのデフォルトのフォーマットが8.24ではなくなっているので、アウト側のフォーマットを設定して合わせる必要があります。ちなみに、オーディオのデータをコールバックで渡すときは、for文で回してコピーするのではなく、出来るだけmemcpyとかで丸ごとコピーできるように、うまくフォーマットを指定した方が良いです。パフォーマンスが違います。PM一部だけなので最初から最後まで説明していただけるとありがたいです。サンプルなどあれば是非。PMコメントありがとうございます。昔に書いたエントリですし「最初から最後まで」というのが丸投げで明確では無いので、ちょっと対応しかねます。ミキサーユニットを使って動くサンプルが欲しいのであれば、Appleの公式のサンプルコードを「kAudioUnitSubType_MultiChannelMixer」で検索するといくつかヒットしますので、そちらを参考にするのが良いと思います。コメントをキャンセルメールアドレスが公開されることはありません。