无论我做什么,我都无法让AVAudioUnitEQ真正做任何事情。如果我为AVAudioUnitEQ设置globalGain,它肯定会影响信号,但不管我设置的EQ滤镜类型或参数是什么类型,我听不到声音的任何变化,它表现得像直接传递。
我尝试过低通,高通,低架子,高架子,设置增益,带宽,我能想到的一切,但似乎没有任何区别。
AVAudioUnitEQ在iOS 8.4和9.1上实际上是否正常运行?我在两款iOS版本的iPad上都看到了完全相同的结果。
这是我的基本发动机设置,试图让1000赫兹的低通滤波器切断。
engine = [[AVAudioEngine alloc] init];
equalizer = [[AVAudioUnitEQ alloc] initWithNumberOfBands:1];
AVAudioUnitEQFilterParameters *filterParameters = equalizer.bands[0];
filterParameters.filterType = AVAudioUnitEQFilterTypeLowPass;
filterParameters.frequency = 1000.0f;
equalizer.bypass = NO;
[engine attachNode:equalizer];
mixer = [[AVAudioEnvironmentNode alloc] init];
[engine attachNode:mixer];
AVAudioEnvironmentReverbParameters * reverbParameters = mixer.reverbParameters;
reverbParameters.enable = YES;
[reverbParameters loadFactoryReverbPreset:kDefaultReverbType ];
[engine connect:mixer to:equalizer format:nil];
[engine connect:equalizer to:[engine mainMixerNode] format:nil];
然后,我将各种文件源连接到调音台并启动引擎。这一切都有效,但无论我如何配置均衡器频段,我都不会听到任何EQ发生,几乎尝试了我能想到的所有选项......
答案 0 :(得分:5)
事实证明,各个频段以及均衡器节点本身都存在旁路。设置filterParameters.bypass = NO修复了问题。