在AudioKit 5中,混音器一次只能播放一个AmplitudeEnvelope。以下是一个包含代码示例的解决方法:
import AudioKit
// 创建一个AmplitudeEnvelope节点
let amplitudeEnvelope = AmplitudeEnvelope()
let oscillator = Oscillator()
// 将AmplitudeEnvelope节点连接到声音源
amplitudeEnvelope.input = oscillator
// 创建一个混音器
let mixer = Mixer()
// 将AmplitudeEnvelope节点连接到混音器
mixer.addInput(amplitudeEnvelope)
// 连接混音器到输出
AudioKit.output = mixer
// 启动AudioKit引擎
try AudioKit.start()
// 开始播放声音
oscillator.start()
// 播放AmplitudeEnvelope
amplitudeEnvelope.start()
// 一段时间后停止AmplitudeEnvelope
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
amplitudeEnvelope.stop()
}
// 关闭AudioKit引擎
AudioKit.stop()
在上面的示例中,我们首先创建了一个AmplitudeEnvelope节点和一个Oscillator节点。然后,我们将AmplitudeEnvelope节点连接到Oscillator节点,再将AmplitudeEnvelope节点连接到Mixer混音器。最后,我们将混音器连接到AudioKit的输出。
我们通过调用start()方法来启动AudioKit引擎,并通过调用start()方法来启动声音和AmplitudeEnvelope的播放。然后,我们使用DispatchQueue.main.asyncAfter方法在2秒后停止AmplitudeEnvelope的播放。
最后,我们通过调用AudioKit.stop()方法来关闭AudioKit引擎。