当AKMicrophone存在时,来自AKMIDI采样器的连续正弦波



当有一个初始化的AKMicrophone时,我在项目中使用AKMIDISampler时遇到问题。当采样器上调用"播放"时,除了正确播放木版样本外,第一次调用"播放"时,恒定正弦波开始播放——它从未停止。

我已经在下面最少的代码中复制了这个问题。当初始化类然后调用playTestSample((时,就会出现问题。

请注意,如果与AKMicrophone相关的代码全部静音,AKMIDISampler就会播放良好,目前困扰我梦想的正弦波也不会发生。

(我试着切换到使用AKSampler((,只是想看看那里是否存在问题,但我一直没能从中得到任何声音(。

Fyi:我在info.plist的"所需背景模式"中有"应用程序使用AirPlay播放音频或流式音频/视频",这可以解决另一个正弦波问题。

非常感谢您的帮助。

顺便说一句:AudioKit很震撼,对这个项目有很大帮助!:^(

AK 4.5.4Xcode 10.1

import Foundation
import AudioKit
class AudioKitTESTManager {
var mixer = AKMixer()
var sampler = AKMIDISampler()
var mic = AKMicrophone()
var micMixer = AKMixer()
var micBooster = AKBooster()
init() {
mixer = AKMixer(sampler, micBooster)
do {
let woodblock = try AKAudioFile(readFileName: RhythmGameConfig.woodblockSoundName)
try sampler.loadAudioFiles([woodblock])
} catch {
print("Error loading audio files into sampler")
}

micMixer = AKMixer(mic)
micBooster = AKBooster(micMixer)
micBooster.gain = 0.0

AudioKit.output = mixer
AKSettings.playbackWhileMuted = true
AKSettings.defaultToSpeaker = true
AKSettings.sampleRate = 44100
do {
print("Attempting to start AudioKit")
try AudioKit.start()
} catch {
AKLog("AudioKit did not start!")
}
}
func playTestSample() {
// You hear the sample and a continuous sine wave starts playing through the samplerMixer
try? sampler.play(noteNumber: 60, velocity: 90, channel: 1)
}
}

Wheeew。我相信我已经找到了解决办法。也许它能帮助其他人?

似乎在AudioKit.start((之后将文件加载到采样器中修复了恐怖的正弦波!

//..
do {
print("Attempting to start AudioKit")
try AudioKit.start()
} catch {
AKLog("AudioKit did not start!")
}

do {
let woodblock = try AKAudioFile(readFileName: RhythmGameConfig.woodblockSoundName)
try sampler.loadAudioFiles([woodblock])
} catch {
print("Error loading audio files into sampler")
}

最新更新