我正在尝试在mac os应用程序中使用卷积混响。AudioKit 4.03
游乐场的例子对我很有效,但是当我尝试在我的应用程序中复制它时,我得到了这个错误,并且没有音频。
2017-11-18 20:21:36.116436-0500 convolutionVerb测试37554:4533072 AVAEInternal.h:69:_AVAE_Check:必填条件为false: AVAudioEngine.mm:348:AttachNode:(节点!=空) 2017-11-18 20:21:36.116642-0500 convolutionVerb测试37554:4533072无法设置(contentViewController)用户定义的检测属性(NSWindow):必填条件为false:节点!=空
下面是我的代码(这只是AudioKit游乐场的一个稍微修改过的版本)
类ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
do {
file = try AKAudioFile(readFileName: "SAMPLES/Bell.wav")
player = try AKAudioPlayer(file: file)
}
catch {print("DIDN'T LOAD")}
player.looping = true
let stairwell = bundle.url(forResource: "stairwell", withExtension: "wav", subdirectory: "Impulse Responses")
let dish = bundle.url(forResource: "dish", withExtension: "wav", subdirectory: "Impulse Responses")
stairwellConvolution = AKConvolution(player,impulseResponseFileURL: stairwell!,partitionLength: 8_192)
dishConvolution = AKConvolution(player,impulseResponseFileURL: dish!,partitionLength: 8_192)
mixer = AKDryWetMixer(stairwellConvolution, dishConvolution, balance: 0.5)
dryWetMixer = AKDryWetMixer(player, mixer, balance: 0.5)
AudioKit.output = dryWetMixer
AudioKit.start()
stairwellConvolution.start()
dishConvolution.start()
player.play()
// Do any additional setup after loading the view.
}发布于 2017-11-19 10:01:27
很难说这是正确的,但我敢说这与你的视图控制器的生命周期有关。您在viewDidLoad中设置此AudioKit的代码可能不安全。我认为将音频代码放入Engine或Conductor单例类中至少是值得的一步,该类可以在整个项目中访问,而不受UI生命周期的约束。
https://stackoverflow.com/questions/47372954
复制相似问题