我正在开发一个iPhone应用程序(如音频处理)。我必须对音频做出一些影响。 如果是desktop app,那里有很多选项。我们可以得到很好的例子和完整的项目,如大胆。但我想为iPhone开发。
我有一个带有混响选项的应用程序; (看看下面的链接)。只是我看"video",我没有在我的iPhone设备上测试这个应用程序。
http://www.appstorehq.com/reverb-iphone-89870/app
我的问题是;如何使用混响功能开发应用程序?那有什么文件吗?如果是,请与我们分享。
注意:我们可以使用AudioUnit开发具有混响功能的应用程序(我不清楚这一点。)。
编辑:我不想使用任何第三方库。
如果有任何人对此有所了解,请与我们分享。
感谢。
答案 0 :(得分:4)
如果您的目标是ios5,那么您只能将效果音频单元的音频单元子类型kAudioUnitSubType_Reverb2。
AudioComponentDescription auEffectUnitDescription;
auEffectUnitDescription.componentType = kAudioUnitType_Effect;
auEffectUnitDescription.componentSubType = kAudioUnitSubType_Reverb2;
auEffectUnitDescription.componentManufacturer = kAudioUnitManufacturer_Apple;
AUGraphAddNode(
processingGraph,
&auEffectUnitDescription,
&auEffectNode),
如果没有,你可以在remoteio回调中编写自己的混响代码。一个简单的延迟可能更容易做,听起来很相似。
答案 1 :(得分:3)
iOS 5.0带来原生OpenAL支持,因此现在更容易 - 您不必自己编写算法代码。它还为各种混响空间提供支持:
我建议您尝试使用已经非常支持混响效果的ObjectAL包装器: https://github.com/kstenerud/ObjectAL-for-iPhone
从此存储库中获取源代码,加载“ObjectAL.xcodeproj”并在任何iOS 5.0设备上运行ObjectALDemo目标(也应该在模拟器上运行)。这将为您提供一个良好的起点和感受到混响效果的能力。
如果您仍然不使用任何第三方库,您只需从ObjectAL获取相关部分即可。在以下源文件(及其相应的标题)中查找与混响相关的代码:
祝你的项目好运!
答案 2 :(得分:1)
AU是一个很好的起点。
编写自己的混响AU,其中包含一个混响实现。有很多方法可以实现混响。一个中/长卷积混响可以通过手机询问,但FDN(反馈延迟网络)等东西不需要大量内存或CPU。
如果您熟悉音频编程和优化,那么这两种实现都很容易实现。实际上,一个听起来非常好并表现良好的部分很难实现。如果您无法编写最佳低级代码或者您(现在)没有理解基本的音频信号处理,那么您将遇到一些障碍需要克服 - 在这种情况下可能需要很长的路。 / p>
答案 3 :(得分:0)
在iOS文档中搜索“混响”会产生Core Audio Overview的链接,该链接将混响作为“效果单位”引用。也许这值得进一步研究?
答案 4 :(得分:0)
不好,我尝试过音频单元方法,即使它在文档中,苹果工程师还没有“实现”。每次调用函数来设置混响属性时,您只会获得失败状态代码。你必须实现自己的混响效果。尝试阅读一些DSP书籍,你可能会发现一个线索。
答案 5 :(得分:0)
你需要学习一些DSP级编码,DSP食谱书是可以的,还有其他的。但基本上你需要习惯于处理频域中的音频信号和FFT等。一旦你有了这个,实现一个混响滤波器应该是直截了当的。
答案 6 :(得分:0)
这是我之前给出的一个答案,但我相信这是相关的。我会同意其他人的意见,并说如果你想要做到这一点,你将不得不对核心音频更加熟悉。
我强烈推荐这个core-audio book.它将教你正确做到这一点,并为你节省很多挫折。
有关音频效果的章节尚未发布,但如果它与书的其余部分类似,则值得等待。
修改
您很可能需要使用音频效果(音频单元的一种形式)来执行此操作。