【问题标题】:Is there a framework to play music with a custom realtime EQ on iOS?是否有在 iOS 上使用自定义实时 EQ 播放音乐的框架?
【发布时间】:2012-11-20 13:05:22
【问题描述】:

我假设我需要音频单元来执行此操作。 AFAIK 在 iOS 上有一个 EQ 音频单元。是否有可以实时播放音乐文件并对其应用 EQ 的框架?

【问题讨论】:

    标签: iphone ios ipad core-audio audiounit


    【解决方案1】:

    不知道有没有框架。但是您可以构建一个简单的音频单元 AUGraph。你需要三个单位:

    • kAudioUnitSubType_RemoteIO -- 用于输出
    • kAudioUnitSubType_NBandEQ -- EQ
    • kAudioUnitSubType_AudioFilePlayer -- 播放文件

    像这样连接它们:

    player -> EQ -> RemoteIO
    

    请注意,kAudioUnitSubType_AudioFilePlayer 只能播放原生 Float32、去交错格式的文件。如果你想播放压缩文件或其他格式的文件,你需要转换它们。

    【讨论】:

    • NBandEQ 是参数均衡器还是线性相位均衡器?它有什么限制?
    • NBandEQ 的参数名为“kAUNBandEQParam_FilterType”,其中一些值为“kAUNBandEQFilterType_Parametric”。此外,iOS 有“kAudioUnitSubType_ParametricEQ”音频单元。您可以在“参数均衡器单元参数”和“多类型均衡器 (NBandEQ) 单元参数”部分下阅读 (developer.apple.com/library/ios/#documentation/AudioUnit/…)。
    【解决方案2】:

    是的,这绝对是可以做到的,而且并不难。您可以使用音频单元,但不这样做要容易得多。您可以使用一个名为 novocaine 的出色框架,它为您提供了一个基于块的回调,您可以在其中直接实现您的 DSP 算法。

    如果您想完全控制音频堆栈,您仍应使用 AudioUnits 进行处理。根据我的经验,这很少需要,而且 novocaine 通常更无痛(因此得名)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多