使用AVPlayer添加iPod均衡器效果



我们正在使用AVPlayer开发一个音乐应用程序,这是在最后阶段。一切都在轨道上,直到我们开始在iPod均衡器应用效果到当前的歌曲。当我们应用AudioUnitProperty时,我们能够获取内置的均衡器列表,我们不会在歌曲中看到任何效果。

你的宝贵意见将对我们有帮助。

你可以在iOS中使用AUGraphAudioUnits来完成各种EQ效果。

基本上,您将在音频的源和输出之间插入效果。您可以使用像多通道混频器的东西有一些控制,或其他,更复杂的音频单元在AUGraph获得更大的控制音频。使用AudioUnits,如果需要的话,您甚至可以获得缓冲区中的每个音频样本。这将需要您重新编码一些音频处理,但它肯定允许您应用均衡器效果。

你可以使用iPod效果单元,这和iOS在播放音乐时应用这些效果的单元完全相同。这将为您提供最接近的效果声音匹配,因为它完全相同的AudioUnit

从苹果:

iPod EQ Audio Unit Description(向下滚动页面)

音频单元子类型的类型定义

iPod EQ单元提供了一组预定义的音调均衡曲线作为出厂预设。通过访问音频单元的kAudioUnitProperty_FactoryPresets属性获得可用的EQ设置数组。然后,您可以通过将其用作kAudioUnitProperty_PresentPreset属性的值来应用设置。

您可以将此单元插入音频源(无论是文件,麦克风输入等)和音频输出(扬声器,耳机等)之间。然后你可以应用任何iPod EQ效果到你的音频。

以下是指定iPod EQ Unit时使用的属性:

kAudioUnitType_Effect

kAudioUnitSubType_AUiPodEQ

kAudioUnitManufacturer_Apple

还有,一定要看看苹果的音频单元托管指南。本页包含许多您需要参考的其他相关文档的链接。

使用MTAudioProcessingTap + AUGraph + AudioUnit可以做到这一点,官方演示AudioTapProcessor向您展示如何使用MTAudioProcessingTap来处理音频数据,然后与AVPlayer结合在它的进程回调中,用AUGraph +AudioUnit

替换它的AudioUnit

最新更新