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
时,我得到以下信息:
我会假设 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 模板验证失败的主要内容,如果未能解决你的问题,请参考以下文章
Huawei .V3 Extention audio Play
从 Audio-Unit 渲染回调实时触发事件并获得严重失真
如何在 iPhone 的 Core Audio (Audio Unit/ Remote IO) 中将录制的声音更改为男人的声音