【问题标题】:iOS Core Audio What is the difference between AUAudioUnit and AVAudioUnit?iOS Core Audio AUAudioUnit 和 AVAudioUnit 有什么区别?
【发布时间】:2016-03-14 10:49:33
【问题描述】:

AUAudioUnit 和 AVAudioUnit API 看起来非常相似,

有什么区别?什么时候用哪一个?

【问题讨论】:

    标签: ios core-audio audio-streaming


    【解决方案1】:

    请注意,AUAudioUnit 表示 V3 音频单元,即使它以“AU”开头。它在 iOS 9 中可用。较旧的 API 也以“AU”开头(例如 AUSampler),但它们是 V2。

    一般来说,您应该在您的应用中使用AVAudioUnit。请注意,它仅在 iOS 8+ 中可用。如上所述,您可以使用AVAudioNode 类轻松设置AVAudioEngineAUAudioUnit 无法做到这一点。

    如果您正在编写自己的音频单元,您应该使用AUAudioUnit 子类化它。

    编辑:如果您打算显示 V3 音频单元的 viewController,也请使用 AUAudioUnit

    【讨论】:

      【解决方案2】:

      一个 AVAudioUnit 作为一个节点连接到一个 AVAudioEngine 中。 AUAudioUnit 通常连接在 AUGraph 中。功能应该相似,因为两者都是音频单元,但使用 AVAudioEngine 是 iOS 中现代音频控制方式,因此 AVAudioUnits 背后有更现代化的 API。

      我敢肯定,在某些用例中,一个比另一个更受欢迎,但我会说使用 AVAudioUnits,除非你需要他们不提供的特定内容。 AUAudioUnits 及其处理图的可定制性非常好,但根据我的经验,它伴随着陡峭的学习曲线和更多的代码。我花了很多不眠之夜检查我的 AUGraph,但 AVAudioEngine 对我非常友好。

      此外,AVAudioNodes 和 AVAudioUnits 在附加到 AVAudioEngine 之前无法正常工作,但是您可以使用渲染回调在没有 AUGraph 的情况下设置 AUAudioUnits。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-03
        • 2019-04-22
        • 1970-01-01
        • 2015-10-27
        • 2021-10-17
        • 2021-08-13
        • 2019-03-18
        • 2017-04-05
        相关资源
        最近更新 更多