AVAudioUnitEQ实际上可以在iOS上运行吗?

时间:2015-12-02 18:27:22

标签: ios

无论我做什么,我都无法让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发生,几乎尝试了我能想到的所有选项......

1 个答案:

答案 0 :(得分:5)

事实证明,各个频段以及均衡器节点本身都存在旁路。设置filterParameters.bypass = NO修复了问题。