作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 iOS 设备上实现我的均衡器,它似乎可以通过 kAudioUnitSubType_NBandEQ 实现。然而,在我设置了每个频段的增益后,我听到声音没有任何变化。
我用的是BandEQDemo(https://github.com/springlo/BandEQDemo)的示例代码
OSStatus TOAUGraphAddNode(OSType inComponentType, OSType inComponentSubType, AUGraph inGraph, AUNode *outNode)
{
AudioComponentDescription desc;
desc.componentType = inComponentType;
desc.componentSubType = inComponentSubType;
desc.componentFlags = 0;
desc.componentFlagsMask = 0;
desc.componentManufacturer = kAudioUnitManufacturer_Apple;
return AUGraphAddNode(inGraph, &desc, outNode);
}
TOAUGraphAddNode(kAudioUnitType_Effect,
kAudioUnitSubType_NBandEQ,
graph,
&eqNode);
AUGraphNodeInfo(graph,
eqNode,
NULL,
&equalizerUnit);
// @[ @32, @64, @128, @256, @512, @1025, @2048, @4096, @8192, @16384 ]
然后在我设置增益并通过这两个函数再次检查之后:
- (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)时,它确实与我设置的值相对应。但我听不出任何不同的声音。
最佳答案
音频爱好者们好!
我也在创建一个具有均衡器功能的应用程序并且偶然发现了这个网页:
http://www.deluge.co/?q=content/coreaudio-iphone-creating-graphic-equalizer
通过一些交叉引用,我发现您的 Git 源代码缺少一些关键功能。在第 142 行之后,必须进行额外的参数设置。例如,没有使用 setNumBands 方法,setBands 也没有。另外,请确保包括绕过设置循环 - 没有它真的无法工作!最重要的是,根据上面的 ling 检查您的实现中缺少哪些代码。
很抱歉我不能通过解释给你更多;几天前我开始学习Audio Units;但是你的问题(以及 BandEQ 项目)和我偶然发现的页面已经解决了我的一些问题,所以我也想帮助你。
尽管如此,this是音频单元的官方指南,一定要研究它,我也会!祝你好运!
关于kAudioUnitSubType_NBandEQ 的 iOS 均衡器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27055708/
我是一名优秀的程序员,十分优秀!