10

据我所知,没有可用于在 iPhone 上播放 MIDI 的本地或第三方库。但似乎有不少应用程序可以做到这一点。他们在用什么?有什么线索吗?

4

5 回答 5

9

我在这里写了一篇关于如何通过 AUGraph 使用 CoreMIDI 播放 MIDI 的教程。

于 2012-03-22T21:21:23.580 回答
6

对于那些走这条路的人来说仅供参考:AVMIDIPlayer 是在 iOS 8 中引入的。似乎在设备上运行良好,而 sim 则不然。

于 2014-11-13T06:18:00.793 回答
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")

于 2018-02-14T12:23:00.917 回答
1

查看 MusicPlayer 类。结合自 iOS 5.0 以来可用的 AUSampler 音频单元,您可以非常轻松地构建 MIDI 播放器。(链接是 OS X,但它也适用于 iOS)

https://developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/CoreAudioOverview/ARoadmaptoCommonTasks/ARoadmaptoCommonTasks.html#//apple_ref/doc/uid/TP40003577-CH6-SW13

关于采样器音频单元,请参阅: 适用于 iOS 的简单可嵌入 MidiSynth?

于 2012-03-05T15:06:28.833 回答
-2

我发现这个库可用于许可。希望它可以帮助别人。

http://www.crimsontech.jp/eng/softsynth/

于 2010-04-21T08:43:43.470 回答