【发布时间】:2011-08-24 06:16:01
【问题描述】:
如何以编程方式为我的 iPhone 应用程序设置低音或其他类型的均衡器? 是否有现成的框架或方法可用?请提供参考..
【问题讨论】:
-
是的,我尝试用谷歌搜索...但我得到了默认设置参考..但我想以编程方式设置均衡器..
标签: iphone objective-c ios audio
如何以编程方式为我的 iPhone 应用程序设置低音或其他类型的均衡器? 是否有现成的框架或方法可用?请提供参考..
【问题讨论】:
标签: iphone objective-c ios audio
如果您将音频播放构建为 AudioUnit 图形,您应该能够使用内置的 iPod EQ AudioUnit,以及 iPod 应用程序中的预设。查看this example,希望能帮助您了解如何执行此操作。
在阅读代码时,请确保您了解音频单元是图形中的节点,音频信号通过回调在图形中流动,并且每个节点都可以修改其向输出节点(本质上是扬声器。)所以您所做的就是将文件加载到内存中,然后在您指定的回调中将 PCM(声音样本)数据提供给音频单元。当缓冲区为空时,将调用回调,您可以将其填满。
链接的示例设置了一个混音器节点、一个输出节点和一个均衡器节点,将它们连接在一起,并在将多个声音文件加载到内存后开始播放它们。
如果 iPod EQ AU 不符合您的要求,您可以构建自己的 AudioUnit 并在以后替换它,但这需要一些 DSP 知识。您还可以找到一些开源均衡器,这些均衡器已作为音频单元实现(例如,这是 Mac 平台上用于音乐制作工具的效果的常见格式。)
【讨论】:
如果您将音频队列或 remoteIO 音频单元用于音频,您可以编写和使用您自己的 DSP 过滤器来处理和均衡您的音频样本数组或缓冲区。 IIR 滤波器的级联或并行组是一种可能性。 FFT 重叠添加/保存滤波是另一种可能的 DSP 技术,它允许自定义均衡曲线。
【讨论】:
不,您无法在 AVAudio Player 中获得直接设置/均衡器设置。
它是 Apple 提供的框架,所以你可以访问的只是你在类引用中获得的所有内容。
所以我想通过类参考,它没有说你可以访问均衡器设置。
这是它的链接。
希望这会有所帮助。
EDIT-1:
如果您想使用其他库,它可以让您广泛访问设置,甚至可以提供即使是 DJ 也会喜欢的音效,那么您可以使用
这是一个付费库,但如果您真的想要良好而有效的音效并访问所有设置,则值得购买。
【讨论】:
meteringEnabled property– averagePowerForChannel:– peakPowerForChannel:– updateMeters。
不,没有可用的框架。我认为不提供此类框架的原因是均衡和设置模式(如低音、经典等)并不是所有使用音频服务的应用程序都可能需要的通用功能。那些需要的人需要实施它们。
【讨论】: