2016-06-01 1 views
1

Appleの3Dミキサーオーディオユニットガイドは述べて:iOSのオーディオユニット、ステレオソースからの出力の各ステレオチャンネルが

ステレオソースを使用するには、2枚の独立したシングルとしてその左右のチャンネルを扱うこと次に、ステレオストリームの各サイドをそれ自身の入力バスに供給します。

https://developer.apple.com/library/ios/qa/qa1695/_index.html

しかし、私は3Dミキサーに私のステレオ・オーディオ・ユニットの各チャネルを送信する方法を見つけ出すことはできません。どのようにこれを行うのですか?

答えて

1

bascially、あなたが

@interface AudioEngine() { 
    AVAudioEngine      *_engine; 
    AVAudioEnvironmentNode    *_environment; 
    AVAudioPCMBuffer     *_ouputBuffer; 
    NSMutableArray <AVAudioPlayerNode*> *_PlayerArray; 
    AVAudioPlayerNode     *_soundPlayer; 
    AVAudioPCMBuffer     *_soundBuffer; 
    bool        _multichannelOutputEnabled 

ような何かをする必要があります。

ファイルをロードし、バッファから取得します。マルチチャンネルにステレオを分割する 、あなたは、この「真= _multichannelOutputEnabled;」

outputLayoutTag = kAudioChannelLayoutTag_AudioUnit_2; 
_multichannelOutputEnabled = true; 

ようなものが必要通常、偽

その後、セットアップに自分のチャンネルで何かをするアルゴリズムを設定されているどこかのビューコントローラで

AVAudio3DMixingRenderingAlgorithm renderingTHIS = _multichannelOutputEnabled ? 
AVAudio3DMixingRenderingAlgorithmSoundField : AVAudio3DMixingRenderingAlgorithmEqualPowerPanning; 
     newPlayer.renderingAlgorithm = renderingTHIS; 

あなたがゲーム内のオブジェクトに関連付けられて、このようなものを持っているかもしれません

[self.epicAudioEngine.updateListenerOrientation:AVAudioMake3DAngularOrientation([ang.x,ang.y,ang.z]) 

[self updateEulerAnglesAndListenerFromDeltaX:dX DeltaY:dY] 

libavformatのffmpegソースコードを見て、オーディオを処理する方法を知るためのlibavutil

関連する問題