我的应用程序在最近升级 AudioKit
后停止工作从 3.7.1 到 4.0.1。
这是我的代码:
sequencer = AKSequencer(filename: myMidi)
for i in 0..<popCount {
//start Audio
sequencer!.avTracks[i].destinationAudioUnit = gPOPs[i].samplePlayer.samplerUnit
}
这是我收到的错误消息:
Value of type '
AKSequencer
' has no member 'avTracks
'
只是想知道是否有人可以帮助我了解发生了什么变化以及如何修复它。
编辑
还尝试过:
sequencer!.tracks[i].destinationAudioUnit = gPOPs[i].samplePlayer.samplerUnit
现在收到此错误消息:
Value of type '
AKMusicTrack
' has no member 'destinationAudioUnit
'
并尝试过:
sequencer!.tracks[i].internalMusicTrack = gPOPs[i].samplePlayer.samplerUnit
出现以下错误:
Cannot assign value of type '
AVAudioUnitSampler
' to type 'MusicTrack?
' (aka 'Optional<OpaquePointer>
')
最佳答案
感谢 Aure 的意见,这帮助我找到了解决这个问题的方法。就像this post on Google Groups一样。特别是迈克尔·希尔的最后评论。
这是我的方法的更新(经过编辑和简化以仅显示必要的部分):
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()
现在一切正常,但我一直在播放神秘的正弦波音调。我找不到它的来源?任何有关调试的帮助都将是救星!谢谢
关于ios - AudioKit 4.0.1 - 类型 'AKSequencer' 的值没有成员 'avTracks',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46644013/