使用AVPlayer添加iPod均衡器效果

时间:2013-06-03 04:04:51

标签: iphone ios avplayer equalizer

我们正在开发一个使用AVPlayer的音乐应用程序,它正处于最后阶段。一切都在进行,直到我们开始研究 iPod Equalizer 对当前歌曲应用效果。 当我们应用 AudioUnitProperty 时,我们能够获取内置的均衡器列表,我们在歌曲中看不到任何效果。

您的宝贵回复将对我们有所帮助。

2 个答案:

答案 0 :(得分:4)

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

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

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

来自Apple:

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

Type Definition for Audio Unit Subtype

  

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

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

这是指定iPod EQ单元时使用的属性:

  

kAudioUnitType_Effect

     

kAudioUnitSubType_AUiPodEQ

     

kAudioUnitManufacturer_Apple

另外,请务必查看Apple的Audio Unit Hosting Guide。此页面包含您希望参考的许多其他相关文档的链接。

答案 1 :(得分:2)

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