我有一个应用程序,也应该作为一个AudioUnit插件工作。在Xcode中,我转到文件>新建>目标,选择AudioUnit并确保选择的语言是"Swift“。在生成的代码中,我认为插件的实际代码在"h","m“Objective C Files中:
#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
发布于 2021-03-24 22:56:06
在核心音频上的2017 WWDC session中,苹果特别建议不要在实时音频环境中使用Swift,因为在Swift运行时可能发生内存分配或其他锁定的可能性很小。AFAIK,这个建议还没有被苹果公司引用(到目前为止?)
因此,如果您希望您的Audio Unit插件是可靠的,答案是不要在Swift中开发插件的这一部分。对于任何关键的实时代码,请坚持使用Objective C的C子集(无对象消息传递或实例变量)。
发布于 2021-04-29 19:42:58
没有Swift“在实时音频环境中”。
绝对一点儿没错。您通常会在渲染块中看到C和Objective-C++。
您可以在音频单元的其余部分及其UI中 Swift。你甚至可以使用SwiftUI。
https://stackoverflow.com/questions/66776309
复制相似问题