2015-12-02 87 views
4

無論我做什麼,我都無法讓AVAudioUnitEQ實際做任何事情。如果我爲AVAudioUnitEQ設置globalGain,它肯定會影響信號,但無論我設置了什麼樣的EQ濾波器類型或參數,我都沒有聽到任何聲音變化,它就像是直通傳遞。AVAudioUnitEQ實際上可以在iOS上使用嗎?

我試過低通,高通,低架,高架,設置增益,帶寬,所有我能想到的東西,但沒有任何東西似乎有所作爲。

AVAudioUnitEQ實際上是在iOS 8.4和9.1上運行的嗎?我在兩個版本的iOS上看到了完全相同的結果。

這是我的基本引擎設置,試圖在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發生,無論我如何配置均衡器頻段,嘗試幾乎所有我能想到的選項...

回答

3

原來,各個頻段都有一個旁路就像在均衡器節點上一樣。設置filterParameters.bypass = NO解決了問題。

相關問題