Как играть MIDI на iPhone?
насколько я знаю, нет родной или сторонней библиотеки для воспроизведения MIDI на iPhone. Но, похоже, есть довольно много приложений, которые делают именно это. Что они используют? Есть зацепки?
5 ответов
Я написал учебник о том, как играть в MIDI с помощью CoreMIDI через AUGraph здесь.
FYI для тех, кто идет по этой дороге: AVMIDIPlayer был представлен в iOS 8. Кажется, хорошо работает на устройстве, sim не так много.
Проверьте класс MusicPlayer. В сочетании с аудиоблоком AUSampler, доступным с iOS 5.0, вы можете легко создать MIDI-плеер. (Ссылка OS X, но она применяется и для iOS)
об аудиоблоке sampler см.: простой монтаж заподлицо MidiSynth для iOS?
это сработало для меня для воспроизведения midi-файла на iPhone:
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")