如何让 iOS 应用识别为 AudioUnit?

Posted

技术标签:

【中文标题】如何让 iOS 应用识别为 AudioUnit?【英文标题】:How to make an iOS app recognized as AudioUnit? 【发布时间】:2021-03-21 18:12:37 【问题描述】:

我正在尝试从头开始制作一个最小的 ios 插件。从一个空的 iOS 应用程序(Swift 5,XCode 12.5)开始,我认为将以下 dict 添加到项目的 Info.plist 以使其被识别为 AudioPlugin 就足够了,但是,安装它之后,AUM(或任何其他 AUv3 host) 没有列出应用程序。

需要什么才能让广告应用被识别为插件?

<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>AudioComponents</key>
        <array>
            <dict>
                <key>description</key>
                <string>MIDIAudioUnit</string>
                <key>factoryFunction</key>
                <string>$(PRODUCT_MODULE_NAME).AudioUnitViewController</string>
                <key>manufacturer</key>
                <string>INQS</string>
                <key>name</key>
                <string>MIDIAudioUnit</string>
                <key>sandboxSafe</key>
                <true/>
                <key>subtype</key>
                <string>aumi</string>
                <key>tags</key>
                <array>
                    <string>Synthesizer</string>
                </array>
                <key>type</key>
                <string>aumi</string>
                <key>version</key>
                <real>67072</real>
            </dict>
        </array>
    </dict>
    <key>NSExtensionMainStoryboard</key>
    <string>MainInterface</string>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.AudioUnit-UI</string>
</dict>

【问题讨论】:

【参考方案1】:

从零开始:

    创建新的/空白的 iOS 应用 添加新目标(类型:音频单元扩展) 在“框架、库和嵌入式内容”部分中将新的音频单元扩展目标添加到原始父应用的目标。

您在第 2 步中创建的目标将是包含您列出的键的 Info.plist 的目标,而不是父应用。

另外,请确保您的音频单元扩展的捆绑包 ID 以您的父应用 ID 开头:

com.jnpdx.***Playground.AudioUnitParentApp //parent
com.jnpdx.***Playground.AudioUnitParentApp.AudioUnit // child

假设您的音频单元是“生成器”类型,它将出现在 AUM 中的“MIDI”下

【讨论】:

非常感谢,这非常有效。如果我可以再问你一件事。我已经有一个正在尝试转换为 AUv3 的音频应用程序(在应用程序商店上发布)。如何重复使用我拥有的所有代码并让应用程序独立运行和作为 AU 插件运行? 最快最脏的方法:将所有必要的源文件添加到 AU 目标以及您的主应用程序目标。更简洁的方法:创建一个新的框架目标,其中包含将在应用程序和扩展程序之间共享的所有代码。然后,添加由应用程序和扩展程序导入的框架。

以上是关于如何让 iOS 应用识别为 AudioUnit?的主要内容,如果未能解决你的问题,请参考以下文章

ios应用内嵌h5页面数据自动变色识别为手机号码的解决方法——手机号码拨号禁用IOS手机页面数字自动识别为手机号

让 Windows 10 将您的应用识别为默认应用选项

如何让 Android Studio 将文件识别为源(测试)

如何让 pandas.read_json 将此 API 返回识别为有效的 .json?

如何让 Visual Studio 2010 将文件扩展名识别为 C#/ASPX/C/C++ 文件?

开源项目—如何在浏览器运行深度神经网络?以人脸口罩识别为例进行讲解