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
の値を返します。だから私は値を設定するに間違って何ですか?
AUComponent.hを見てください。 -10877のように見えるのはkAudioUnitErr_InvalidElement "指定された要素が無効です"です。エラー定数を調べると、いくつかの結果が返されます。 http://lists.apple.com/archives/coreaudio-api/2002/Sep/msg00470.html –
エラーコードの場所を教えていただき、ありがとうございました。これは私が間違ったことを追跡するのに役立ちました。 – Gobot
うれしいです。あなたの答えを受け入れることを忘れないでください! :-) –