1

I/O ユニットに接続されたマルチチャンネル ミキサーを使用して、かなり簡単に AUGraph をセットアップしました。再生はコールバック関数を介してアクセスされ、すべてがうまく機能します。

マルチチャンネル ミキサーの代わりに 3D ミキサーに切り替えようとしています。そこで、パラメーターを kAudioUnitSubType_MultiChannelMixer から kAudioUnitSubType_AU3DMixerEmbedded に切り替え、他のすべてのセットアップを同じままにしました。

その結果、何かのように聞こえ始めたような甲高い鳴き声が、やがて鳴き声のようになりました。3D Mixer ユニットの各パラメータを調べてデフォルトに設定しましたが、変更はありませんでした。ただし、k3DMixerParam_Enable パラメーターのオンとオフを切り替えると、再生のミュートとミュート解除が機能しました。

私が見逃したかもしれないセットアップは何ですか?または、動作する 3D ミキサーの例がどこにあるか知っていますか?

4

3 に答える 3

1

すべての回答が既に述べているように、iOS の 3D ミキサーにはモノラル入力が必要です。

iOS 8 / Xcode 6 では、標準フォーマットの概念は廃止され、3D ミキサーの入力バス ストリーム フォーマットの説明として機能するモノ ストリーム フォーマットの説明 (およびこれのみ) が見つかりました。

AudioStreamBasicDescription monoStreamFormat = {0};
monoStreamFormat.mSampleRate        = sampleRate;
monoStreamFormat.mFormatID          = kAudioFormatLinearPCM;
monoStreamFormat.mFormatFlags       = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
monoStreamFormat.mBitsPerChannel    = 16;
monoStreamFormat.mChannelsPerFrame  = 1;
monoStreamFormat.mFramesPerPacket   = 1;
monoStreamFormat.mBytesPerPacket    = 2;
monoStreamFormat.mBytesPerFrame     = 2;

サンプル レートを設定し、 から取得する必要がありAVAudioSessionます。

3D ミキサー入力に接続された Audio Unit の出力にこのフォーマットを設定します。おそらくAUConverterユニットです...

ただし、これは iOS 8 未満ではテストされていないことに注意してください。

于 2015-03-05T15:00:30.593 に答える
0

3D ミキサーにはモノ入力が必要でした。

http://lists.apple.com/archives/coreaudio-api/2010/Sep/msg00144.html

于 2011-06-21T16:29:22.760 に答える