2012-07-06 9 views
6

Appleのサンプルプロジェクト "LoadPresetDemo"で演奏しています。私はリバーブオーディオユニットAudioUnit kAudioUnitSubType_Reverb2を利用できる唯一のiOSリバーブであるグラフに追加しました。 CoreAudio対応のヘッダファイル「AudioUnitParameters.h」で、それはREVERB2は、これらのパラメータに応答しなければならないと述べている:Core Audio(iOS 5.1)Reverb2のプロパティが存在しません。エラーコード-10877

enum { 
    // Global, CrossFade, 0->100, 100 
    kReverb2Param_DryWetMix = 0, 
    // Global, Decibels, -20->20, 0 
    kReverb2Param_Gain = 1, 
    // Global, Secs, 0.0001->1.0, 0.008 
    kReverb2Param_MinDelayTime = 2, 
    // Global, Secs, 0.0001->1.0, 0.050 
    kReverb2Param_MaxDelayTime = 3, 
    // Global, Secs, 0.001->20.0, 1.0 
    kReverb2Param_DecayTimeAt0Hz = 4, 
    // Global, Secs, 0.001->20.0, 0.5 
    kReverb2Param_DecayTimeAtNyquist = 5, 
    // Global, Integer, 1->1000 
    kReverb2Param_RandomizeReflections = 6, 
}; 

AUGraphが初期化され、開始された後、すべてのものは、私は音が聞こえ、コンパイルされます。

次に、私は(フル湿ったミックスに変更)kReverb2Param_DryWetMixパラメータを変更する:

AudioUnitSetParameter(_reverbUnit, kAudioUnitScope_Global, 0, kReverb2Param_DryWetMix, 100.0f, 0); 

すべての良い、私は完全な濡れた混合リバーブで音を聞きます。

ここで私は問題に遭遇しています。 kReverb2Param_DryWetMix以外のパラメータを変更しようとすると、エラーコード-10877が表示されます。あたかもヘッダーファイルにリストされている他のパラメーターが実際には存在しないようです。例えば

AudioUnitSetParameter(_reverbUnit, kAudioUnitScope_Global, 0, kReverb2Param_DecayTimeAtNyquist, 20.0f, 0) 

を呼び出すと-10877エラーをスローします。

これはバグですか?オーディオフレームワークを省略しましたか?特定のオーディオヘッダーをインポートしていませんか?

現在のオーディオフレームワークは、AVFoundationとAudioToolboxです。 現在のオーディオの輸入はノーソリューションをGoogleに洗い上げている

#import <AudioToolbox/AudioToolbox.h> 
#import <AVFoundation/AVFoundation.h> 
#import <CoreAudio/CoreAudioTypes.h> 

です。私は、Googleルートが失敗したときに問題があることを知っています。どんな助けでも大歓迎です。

注:私はシミュレータとiPhone 4Sデバイスで同じ問題をテストしました。

UPDATE: Iは

AudioUnitGetParameter(_reverbUnit, kReverb2Param_DecayTimeAtNyquist, kAudioUnitScope_Global, 0, &value) 

を試みており、それは、プロパティが存在しないことを意味する、0.500000の値を返します。だから私は値を設定するに間違って何ですか?

+1

AUComponent.hを見てください。 -10877のように見えるのはkAudioUnitErr_InvalidElement "指定された要素が無効です"です。エラー定数を調べると、いくつかの結果が返されます。 http://lists.apple.com/archives/coreaudio-api/2002/Sep/msg00470.html –

+0

エラーコードの場所を教えていただき、ありがとうございました。これは私が間違ったことを追跡するのに役立ちました。 – Gobot

+0

うれしいです。あなたの答えを受け入れることを忘れないでください! :-) –

答えて

4

Doh!私は、AudioUnitSetParameterAudioUnitSetPropertyをパラメータとして混同していたことに気付きました。男、微妙だが悪い。

+0

こんにちは、私はまったく同じ問題を抱えています。 AudioUnitSetPropertyを使ってあなたの問題を解決した例を投稿してもよろしいですか?どうもありがとう。 //////// AudioUnitSetParameter(_reverbUnitModule; –

+0

は\t AudioUnitSetParameter(_reverbUnitModule.unit、kAudioUnitScope_Global、0、kReverb2Param_DryWetMix、50.0、0)あなたはすべてを正しく初期化....と仮定します。ユニット、kReverb2Param_DecayTimeAt0Hz、kAudioUnitScope_Global、0,1,0); – Gobot

+0

いいです。ありがとう。 –

関連する問題