音频单元动态注册(Audio units dynamic registration)

2019-10-30 23:46发布

我们已经开发了一个定制的音频单元和音频单元宿主应用程序。 我们试图从应用程序动态注册自定义音频单元。 下面的代码段被用于动态注册音频单元。 (此代码段是在苹果公司的技术说明技术说明TN2247提到)

#include <AudioUnit/AudioComponent.h>
extern AudioComponentPlugInInterface*
                MyExampleAUFactoryFunction(const AudioComponentDescription *inDesc);

OSStatus RegisterMyExampleAudioUnit()
{
    //  fill out the version number for the AU
    UInt32 theVersion = 0x00010000;

    //  fill out the AudioComponentDescription
    AudioComponentDescription theDescription;
    theDescription.componentType = kAudioUnitType_Effect;
    theDescription.componentSubType = 'EXAU';
    theDescription.componentManufacturer = 'MYCO';
    theDescription.componentFlagsMask = 0;

    //  Use the flag to indicate that this AudioComponent is Sandbox Safe
    theDescription.componentFlags = kAudioComponentFlag_SandboxSafe;

    //  call AudioComponentRegister()
    return AudioComponentRegister(&theDescription, CFSTR("My Company: MyExampleAU"),
                            theVersion, MyExampleAUFactoryFunction);

虽然编辑音频单元宿主应用程序,我们得到以下链接器错误。

对于i386硬件架构未定义的符号:
“_MyExampleAUFactoryFunction”,从引用:

任何一个可以帮我解决这个问题。

Answer 1:

我就遇到了这个问题过分,我的项目只有C和Objective-C代码。 它的帮助下,建立一个单一的cpp类,并将其添加过的项目。 我不知道里面连接更深层次的原因是什么。



文章来源: Audio units dynamic registration