ios – 试图找出Core Audio的NBandEQ

ios – 试图找出Core Audio的NBandEQ,第1张

概述所以我试图弄清楚Apple在iOS 5中添加的不良记录的NBandEQ.我能够让它适用于16频段以下的任何东西,但我想要更多:)如果我使它成为15频段均衡器会发生什么一切正常但如果我去任何数字16及以上我在设置kAUNBandEQProperty_NumberOfBands时得到-10851(kAudioUnitErr_InvalidPropertyValue)错误,那么前8个频段设置正常,其余结 所以我试图弄清楚Apple在iOS 5中添加的不良记录的NBandEQ.我能够让它适用于16频段以下的任何东西,但我想要更多:)如果我使它成为15频段均衡器会发生什么一切正常但如果我去任何数字16及以上我在设置kAUNBandEQProperty_NumberOfBands时得到-10851(kAudioUnitErr_InvalIDPropertyValue)错误,那么前8个频段设置正常,其余结果导致-10878(kAudioUnitErr_InvalIDParameter)错误.因此可以成功完成15个频段,但是当我突然进入16个频段时,只能完成8个频段.我可以读取kAUNBandEQProperty_MaxnumberOfBands,我认为这是当前状态的设备可以处理的限制.好吧,从12位数字到4位数字,它会发出不规则的数字.我觉得自己不喜欢我给它的极端频率.我消除了这种可能性.然后我意识到频段的带宽可能重叠,而且不喜欢.所以我将带宽从默认的.5减少到最小. .05没有帮助以太.

我确实意识到,毕竟我弄乱了所有愚蠢的设置,因为它在我进入那些设置之前开始抱怨.它已经给出了乐队数量和错误.

我发布这个问题,看看是否有更多经验丰富的程序员可以在我的代码中看到一些让我搞砸的事情并向我指出.我意识到并不是很多人冒险进入核心音频而不是NBandEQ,但也许我搞砸了一些基本的C所以请看看.我会非常感激的.我很沮丧.同样在发布此代码(即使它是丑陋的测试代码)也许我可以帮助落后的其他人.我知道我希望至少有一段代码可以让我看一下与NBandEQ相关的代码

在此先感谢您的帮助!

//Getting max bands for this device???UInt32 maxnumOfBands;UInt32 propSize = sizeof(maxnumOfBands);AudioUnitGetProperty([_equilizer audioUnit],kAUNBandEQProperty_MaxnumberOfBands,kAudioUnitScope_Output,&maxnumOfBands,&propSize);NSLog(@"THIS IS THE MAX NUMBER OF BANDS?---%u",(unsigned int)maxnumOfBands);UInt32 noBands = [eqFrequencIEs count];// Set the number of bands firstNSLog(@"NumberOfBands atempted:%i with result:%ld",(unsigned int)noBands,AudioUnitSetProperty(_equilizer.audioUnit,kAUNBandEQProperty_NumberOfBands,kAudioUnitScope_Global,&noBands,sizeof(noBands)));// Set the frequencIEsfor (NSUInteger i=0; i<noBands; i++) {   NSLog(@"Set Frequency for band:%i with result:%ld",i,AudioUnitSetParameter([_equilizer audioUnit],kAUNBandEQParam_Frequency+i,(AudioUnitParameterValue)[[eqFrequencIEs objectAtIndex:i] floatValue],0));} //set banDWIDthfor (NSUInteger i=0; i<noBands; i++) {    NSLog(@"Set banDWIDth for band:%i with result:%ld",kAUNBandEQParam_BanDWIDth+i,0.05,//of octive                          0));}// Set the bypass to off "0"for (NSUInteger i=0; i<noBands; i++) {    NSLog(@"Set Bypass for band:%i with result:%ld",kAUNBandEQParam_BypassBand+i,//off                                                   0));}

}

解决方法 好吧我明白了.我在kAudioBandEQProperty_MaxnumberOfBands上使用了kAudioUnitScope_Output它应该是kAudioUnitScope_Global.

kAUNBandEQProperty_MaxnumberOfBands在Sim,iPhone 5和Retina Ipad上产生了16个.

总结

以上是内存溢出为你收集整理的ios – 试图找出Core Audio的NBandEQ全部内容,希望文章能够帮你解决ios – 试图找出Core Audio的NBandEQ所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1052625.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存