kAudioUnitSubType_NBandEQ的iOS均衡器

kAudioUnitSubType_NBandEQ的iOS均衡器,ios,audiounit,equalizer,Ios,Audiounit,Equalizer,我想在iOS设备上实现我的均衡器,kAudioUnitSubType_NBandEQ似乎可以实现。然而,在我设置了每个波段的增益后,我听到声音没有任何变化 我使用BandEQDemo()的示例代码 然后在设置增益后,通过这两个功能再次检查: - (AudioUnitParameterValue)gainForBandAtPosition:(NSUInteger)bandPosition { AudioUnitParameterValue gain; AudioUnitParame

我想在iOS设备上实现我的均衡器,kAudioUnitSubType_NBandEQ似乎可以实现。然而,在我设置了每个波段的增益后,我听到声音没有任何变化

我使用BandEQDemo()的示例代码

然后在设置增益后,通过这两个功能再次检查:

- (AudioUnitParameterValue)gainForBandAtPosition:(NSUInteger)bandPosition
{
    AudioUnitParameterValue gain;
    AudioUnitParameterID parameterID = kAUNBandEQParam_Gain + bandPosition;

    TOThrowOnError(AudioUnitGetParameter(equalizerUnit,
                                         parameterID,
                                         kAudioUnitScope_Global,
                                         0,
                                         &gain));

    return gain;
}


- (void)setGain:(AudioUnitParameterValue)gain forBandAtPosition:(NSUInteger)bandPosition
{
    AudioUnitParameterID parameterID = kAUNBandEQParam_Gain + bandPosition;

    TOThrowOnError(AudioUnitSetParameter(equalizerUnit,
                                         parameterID,      
                                         kAudioUnitScope_Global,
                                         0,
                                         gain,
                                         0));
    NSLog(@"After set gain@[%d]->%f", bandPosition, [self gainForBandAtPosition:bandPosition]);
}

当我设置后得到每个频带的增益值(-96dB~24dB)时,它确实与我设置的值相对应。但我听不到声音上有任何不同。

嗨,音响爱好者朋友

我还在创建一个具有均衡器功能的应用程序,无意中发现了以下网页:

通过一些交叉引用,我发现来自Git源代码的代码缺少一些关键特性。在第142行之后,必须进行额外的参数设置。 例如,未使用SetNumands方法,也未使用setBands方法。此外,请确保包括旁路设置循环-它真的不会工作没有它!最重要的是,根据上面的描述,检查您的实现中缺少哪些代码

对不起,我不能通过解释给你更多;几天前我开始学习音频单元;但是你的问题(以及BandEQ项目)和我偶然发现的页面解决了我的一些问题,所以我也在努力帮助你


尽管如此,这是一个官方的音频单元指南,一定要学习它,我也要学习!祝你好运

你试过我的答案了吗?嗨!我正在为AVPlayer寻找相同的EQ。我已经下载了BandEQDemo的示例代码。现在,我试着使用iphone5s。它正在播放滑块,但什么也听不见。请帮忙。谢谢分享链接。这对我帮助很大!不客气!但无论如何,我无法实现EQ,因为我无法将MPMusicLayerController连接到我的混音器(音频)单元。遗憾的是,我误解了Audiosession是什么-我认为它是一种传输应用程序中所有音频的流,并计划利用它:-/不,MPMusicLayerController不允许对音频文件进行任何形式的访问,因此音频处理是不可能的。希望将来有更大的自由度。
- (AudioUnitParameterValue)gainForBandAtPosition:(NSUInteger)bandPosition
{
    AudioUnitParameterValue gain;
    AudioUnitParameterID parameterID = kAUNBandEQParam_Gain + bandPosition;

    TOThrowOnError(AudioUnitGetParameter(equalizerUnit,
                                         parameterID,
                                         kAudioUnitScope_Global,
                                         0,
                                         &gain));

    return gain;
}


- (void)setGain:(AudioUnitParameterValue)gain forBandAtPosition:(NSUInteger)bandPosition
{
    AudioUnitParameterID parameterID = kAUNBandEQParam_Gain + bandPosition;

    TOThrowOnError(AudioUnitSetParameter(equalizerUnit,
                                         parameterID,      
                                         kAudioUnitScope_Global,
                                         0,
                                         gain,
                                         0));
    NSLog(@"After set gain@[%d]->%f", bandPosition, [self gainForBandAtPosition:bandPosition]);
}