主机AUv3音频扩展并连接到参数树

问题描述 投票:0回答:1

我开始编写AUv3音频扩展,并遵循Xcode 11.3中的模板,该模板完成了所有繁重的工作。该扩展程序在加载到其他主机时效果很好!现在,我想在我的应用程序中使用自己的扩展程序,并简单地播放音频文件,但是由于几天(和晚上)以来如何访问参数,我遇到了麻烦和麻烦。

我使用AVplayer和AVengine并实例化AudioUnitExtension,如下所示:

    // instantiate AudioUnit as AVAudioUnit
[AVAudioUnit instantiateWithComponentDescription:audioDescription options:1 completionHandler:^(AVAudioUnit * audioUnit, NSError *error) { ... do more stuff here}];

令我惊讶的是,我的扩展程序中的createAudioUnitWithComponentDescription方法未调用?!但是,当我将其连接到AVengine时:

[self->_engine attachNode:self->_AV_AudioUnit];

音频正在传递并且已应用效果,但是在AVAudioUnit中没有参数树,因此我无法更改任何处理参数。它接缝AVAudioUnit!= AUAudioUnit,并且没有参数树。但是,AVengine仅允许与AVAudioUnits配合使用!

我浏览了Apple的示例和网络,但找不到任何帮助...如果有人可以向我指出如何进行设置的方法,那将非常棒!

ios core-audio avaudioengine auv3
1个回答
0
投票

我花了很长时间才找到原因:无法在同一应用程序中动态加载audioUnit,这就是为什么调试器不会在AU-Unit扩展内的断点处停止的原因。

要获取视图控制器,我先实例化了一个AV-AudioUnit,然后使用包装器来获取AU-AudioUnit。>

        // wrapper - to get the AU-unit from AV-Unit
    self->_AU_AudioUnit = audioUnit.AUAudioUnit;

然后加载相应的ViewController

        // get the corresponding Viewcontroller
    [self->_AU_AudioUnit requestViewControllerWithCompletionHandler:^(AUViewControllerBase * _Nullable viewController) { ... do presenting in container view here }]

我希望这可以帮助某人花费的时间不比我多!

© www.soinside.com 2019 - 2024. All rights reserved.