Xcode Audio Unit v3 模板验证失败

Posted

技术标签:

【中文标题】Xcode Audio Unit v3 模板验证失败【英文标题】:Xcode Audio Unit v3 template fails validation 【发布时间】:2016-08-31 20:27:14 【问题描述】:

我通过以下步骤创建了一个带有音频单元扩展的小测试应用:

    打开 Xcode 并创建一个新的“Cocoa 应用程序”项目 选择文件 -> 新建 -> 目标 选择“音频单元扩展” 用合理的值填写表格(我已经测试过乐器和 Midi 效果类型) “运行”扩展程序 选择“Logic Pro X”作为主机应用 逻辑启动,插件验证失败:While verifying Audio Unit compatibility, Logic Pro X encountered 1 Audio Unit plug-in(s) which did not pass the Apple AU validation. These plug-ins have been excluded from further usage in Logic Pro X to prevent possible problems or crashes. You can start the Plug-In Manager now to review the validation results or continue the startup process.

明确一点,我根本没有编辑模板代码。

当我运行 auval 时,我得到以下信息:

通过 ADLS 验证音频单元仪器: 非盟验证工具 版本:1.6.1a1 版权所有 2003-2013,Apple Inc. 保留所有权利。 为命令选项指定 -h (-help) -------------------------------------------------- 验证音频单元:'aumu' - 'qqqq' - 'ADLS' -------------------------------------------------- 制造商字符串:ADLS 音频单元名称:仪器 组件版本:1.6.0 (0x10600) * * 经过 -------------------------------------------------- 测试开放时间: 寒冷的: 打开 AudioUnit 的时间:213.911 毫秒 温暖的: 打开 AudioUnit 的时间:100.937 毫秒 此 AudioUnit 是第 3 版实现。 第一次: 致命错误:初始化:结果:-50 验证结果:无法打开

我会假设 Apple 的模板是正确的,所以这可能是我系统上的配置问题。事实上,我在 Xcode 控制台中收到以下令人不安的消息:

2016-08-31 13:15:25.602 Logic Pro X[51763:12817003] 13:15:25.602 警告: 140:此应用程序或它使用的库正在使用已弃用的 Carbon 用于托管音频单元的组件管理器。对此的支持将是 在未来的版本中删除。此外,这使得主机不兼容 版本 3 音频单元。请转换到 AudioComponent.h 中的 API。

很可能还有其他一些音频单元正在使用Component Manager,因为我正在使用 Xcode 的模板创建一个全新的应用程序。

但是,Apple 自己的 AUV3FilterDemo 可以正常工作。所以也许这条消息是一个红鲱鱼。

Apple 的模板是否应该开箱即用地进行验证?

更新

通过删除其他插件,我能够避免 v2 API 警告,所以它确实是一个红鲱鱼。

【问题讨论】:

【参考方案1】:

Xcode auv3 模板未能实现输入和输出总线及其各自数组的创建。只有 cmets 作为占位符。您需要在初始化时执行此操作并实现 inputBusses 和 outputBusses 访问器方法。看看 Apple Developer AUv3 示例项目是如何执行的。无论如何,这是一个很好的起点。

【讨论】:

以上是关于Xcode Audio Unit v3 模板验证失败的主要内容,如果未能解决你的问题,请参考以下文章

Audio Unit 基础

Huawei .V3 Extention audio Play

Audio Unit 介绍

从 Audio-Unit 渲染回调实时触发事件并获得严重失真

[ffmpeg]deocde audio(v3.3.2)

如何在 iPhone 的 Core Audio (Audio Unit/ Remote IO) 中将录制的声音更改为男人的声音