据我所知,iPhone上没有可播放MIDI的原生或第三方库。但似乎有相当多的应用程序正是这样做的。他们在用什么?有线索吗?
答案 0 :(得分:9)
我已经编写了一个关于如何通过AUGraph here使用CoreMIDI播放MIDI的教程。
答案 1 :(得分:6)
对于那些沿着这条路走下去的人来说:AVMIDIPlayer是在iOS 8中引入的。似乎在设备上运行良好,而不是那么多。
答案 2 :(得分:2)
这适合我在iPhone上播放midi文件:
import AVFoundation
class MidiPlayer: NSObject {
static let shared = MidiPlayer()
var musicPlayer: MusicPlayer?
var sequence: MusicSequence?
func play(file: String) {
guard let midiFile = Bundle.main.url(forResource: file, withExtension: "mid") else {
return
}
NewMusicPlayer(&musicPlayer)
NewMusicSequence(&sequence)
if let musicPlayer = musicPlayer, let sequence = sequence {
MusicSequenceFileLoad(sequence, midiFile as CFURL, .midiType, MusicSequenceLoadFlags())
MusicPlayerSetSequence(musicPlayer, sequence)
MusicPlayerStart(musicPlayer)
}
}
func stop() {
if let musicPlayer = musicPlayer {
MusicPlayerStop(musicPlayer)
}
}
}
然后MidiPlayer.shared.play(file: "midifile")
答案 3 :(得分:1)
查看MusicPlayer类。结合iOS 5.0以后的AUSampler音频单元,您可以非常轻松地构建MIDI播放器。 (链接是OS X,但它也适用于iOS)
关于采样器音频单元,请参阅: Simple embeddable MidiSynth for iOS?
答案 4 :(得分:-2)
我发现这个库可以获得许可。希望它可以帮助别人。