如何在iOS上播放声音音符(.mid文件)?

时间:2017-12-13 08:18:59

标签: ios swift midi

我想制作钢琴演奏者,我想播放预定义的音符,这些音符是一些.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")
    }

1 个答案:

答案 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文件。