我想制作钢琴演奏者,我想播放预定义的音符,这些音符是一些.mid文件。这是我的代码无效。
let soundPath: String? = Bundle.main.path(forResource: "0_100", ofType: "mid")
let midiFile:URL = URL(fileURLWithPath: soundPath ?? "")
var midiPlayer: AVMIDIPlayer?
do {
try midiPlayer = AVMIDIPlayer(contentsOf: midiFile, soundBankURL: nil)
midiPlayer?.prepareToPlay()
midiPlayer?.play {
print("finished playing")
}
} catch {
print("could not create MIDI player")
}
答案 0 :(得分:2)
soundBankURL
:
try midiPlayer = AVMIDIPlayer(contentsOf: midiFile, soundBankURL: nil)
根据文档要求:https://developer.apple.com/documentation/avfoundation/avmidiplayer/1389225-init
重要强>
对于macOS,bankURL可以设置为nil以使用默认的声音库。但是,iOS必须始终引用有效的银行文件。
例如,soundBank可以是.sf2文件。