首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Swift中开发Audiounit

在Swift中开发Audiounit
EN

Stack Overflow用户
提问于 2021-03-24 15:17:36
回答 2查看 79关注 0票数 1

我有一个应用程序,也应该作为一个AudioUnit插件工作。在Xcode中,我转到文件>新建>目标,选择AudioUnit并确保选择的语言是"Swift“。在生成的代码中,我认为插件的实际代码在"h","m“Objective C Files中:

代码语言:javascript
复制
#import "ChordezAuAudioUnit.h"

#import <AVFoundation/AVFoundation.h>

// Define parameter addresses.
const AudioUnitParameterID myParam1 = 0;

@interface ChordezAuAudioUnit ()

@property (nonatomic, readwrite) AUParameterTree *parameterTree;
@property AUAudioUnitBusArray *inputBusArray;
@property AUAudioUnitBusArray *outputBusArray;
@end


@implementation ChordezAuAudioUnit
@synthesize parameterTree = _parameterTree;

- (instancetype)initWithComponentDescription:(AudioComponentDescription)componentDescription

[...]

如何在Swift中开发插件?在这个Github项目中,作者似乎正在做这件事,但是我不知道如何用Swift代码替换生成的代码:https://github.com/inquisitiveSoft/MIDIAudioUnitExample/blob/main/TransposeOctaveAudioUnit/MIDIAudioUnit/MIDIAudioUnit.swift

EN

回答 2

Stack Overflow用户

发布于 2021-03-24 22:56:06

在核心音频上的2017 WWDC session中,苹果特别建议不要在实时音频环境中使用Swift,因为在Swift运行时可能发生内存分配或其他锁定的可能性很小。AFAIK,这个建议还没有被苹果公司引用(到目前为止?)

因此,如果您希望您的Audio Unit插件是可靠的,答案是不要在Swift中开发插件的这一部分。对于任何关键的实时代码,请坚持使用Objective C的C子集(无对象消息传递或实例变量)。

票数 1
EN

Stack Overflow用户

发布于 2021-04-29 19:42:58

没有Swift“在实时音频环境中”。

绝对一点儿没错。您通常会在渲染块中看到C和Objective-C++。

您可以在音频单元的其余部分及其UI中 Swift。你甚至可以使用SwiftUI。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66776309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档