【发布时间】:2017-11-07 14:18:50
【问题描述】:
从previous issue 开始,我停止使用AKSampler 转而使用AKMIDISampler 中使用的功能。让我的循环再次工作(在此Google Groups post 的帮助下),但我有一个正弦波播放(当 MIDISampler 找不到它的源文件时会发生这种情况)。
我定位的源文件不是问题,因为它们都可以正常播放。正弦波来自过程中的其他地方,但我看不到在哪里......
请帮忙 8•)
(经过简化和编辑的代码仅显示相关详细信息 - 请联系以获取任何说明)
var MIDISamplePlayer = AKMIDISampler()
var sequencer: AKSequencer?
var mixer: AKMixer!
// initialise the mixer
mixer = AKMixer()
do {
audiofile = try AKAudioFile(readFileName: SoundFilename as! String,
baseDir: .resources)
} catch let error as NSError {
print("There's an error: \(error)")
}
do {
try sprite.MIDISamplePlayer.loadAudioFile(audiofile)
} catch let error as NSError {
print("There's an error: \(error)")
}
sprite.tracker = AKAmplitudeTracker(sprite.MIDISamplePlayer)
mixer.connect(to:sprite.tracker, bus: mixer.nextInput.bus)
sequencer = AKSequencer(filename: POPmidi)
sequencer?.enableLooping()
let midi = AKMIDI()
for i in 0..<popCount {
gPOPs[i].MIDISamplePlayer.enableMIDI(midi.client, name: "MIDISample_\(i)")
mixer.connect(gPOPs[i].MIDISamplePlayer)
sequencer!.tracks[i].setMIDIOutput(gPOPs[i].MIDISamplePlayer.midiIn)
}
AudioKit.start()
sequencer!.play()
【问题讨论】:
-
我发现了另一种情况,即 AVAudioUnitSampler 播放正弦波(在 iOS 上)。如果您没有为背景音频设置 plist,采样器将成功加载您的样本,但仍会播放默认的正弦波。
-
感谢 Eric 的输入。我已经启用了背景音乐:
Required background modes: App plays audio or streams audio/video using AirPlay这是我假设的设置。我现在要调查 AVAudioUnitSampler 作为可能的来源???? -
会不会来自你在stackoverflow.com/questions/47335779/…中描述的节奏轨道?
-
感谢 Mahal,您的建议使我最终发现了这里的问题,见下文... ????