이 고양이를 피하는 데는 여러 가지 방법이 있습니다. 시작 소리를 중지
let volumeControl = AKBooster(whiteNoiseGenerator)
volumeControl.gain = 0
volumeControl.rampTime = 1 // number of seconds to fade in/out
AudioKit.output = volumeControl
AudioKit.start() // Don't forget this, I assume you just didn't paste it in
whiteNoiseGenerator.start() // nothing will be heard
그런
그냥
volumeControl.gain = 1 // or 0 for stopping
를 설정하여 수행됩니다
한 것은 AKBooster에 노이즈 발생기를 포장하는 것입니다 : 내가 당신에게 몇 줄 것이다 또는 수술의 맥락에서이를 수행하는 방법을 알고 싶다는 것을 알고 있으므로, 수술 및 이득의 수술 매개 변수를 제공하여이를 수행 할 수 있습니다.
let whiteNoiseGenerator = AKOperationGenerator { parameters in
let white = AKOperation.whiteNoise() * parameters[0].portamento(halfDuration: parameters[1])
return white
}
whiteNoiseGenerator.parameters = [0,0.1] // first number is gain, second is portamento time
AudioKit.output = whiteNoiseGenerator
AudioKit.start()
whiteNoiseGenerator.start()
0 당신은 노이즈를 켜려고 할 때
그리고, 이렇게 :
whiteNoiseGenerator.parameters[0] = 1
당신은 0.1 초 동안 전체 볼륨에 부드러운 변화를 얻을 것이다.
HTH!
두 번째 해결 방법은 큰 도움이됩니다. 첫 번째로, 나는 생각한다 : volumeControl.gain = 1 // 멈춤을위한 0 –
내가 탐구하고있는 또 다른 접근법은 MPVolumeView를 사용하는 것이지만 이것은 AKOperationGenerators 사이를 전환 할 때 응용 프로그램을 중단시키는 것처럼 보입니다. –
주의해야합니다. 이상적으로 AudioKit을 시작하고 중지하는 대신 필요에 따라 생성기를 시작 및 중지하는 오디오 엔진이 하나만 있으면됩니다. 섬세한 균형이 될 수 있습니다. –