6

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

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

4

2 回答 2

4

你当然可以在 iOS 中使用AUGraphand来完成各种 EQ 效果。AudioUnits

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

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

来自苹果:

iPod EQ 音频单元说明(向下滚动页面)

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

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

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

以下是指定 iPod EQ 单元时要使用的属性:

kAudioUnitType_Effect

kAudioUnitSubType_AUiPodEQ

kAudioUnitManufacturer_Apple

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

于 2013-06-11T19:54:08.620 回答
3

使用MTAudioProcessingTap + AUGraph + AudioUnit 可以做到,官方demo AudioTapProcessor展示了如何使用MTAudioProcessingTap 处理音频数据,然后在它的进程回调上结合AVPlayer,使用AUGraph +AudioUnit 替换它的AudioUnit

于 2017-06-01T10:02:30.367 回答