【问题标题】:Play midi file or midi tone in iPhone with Xcode / Cocoa使用 Xcode / Cocoa 在 iPhone 中播放 midi 文件或 midi 音调
【发布时间】:2011-06-26 14:36:06
【问题描述】:

我需要在 iPhone 中播放 MIDI 文件或 MIDI 音。

我已经测试了MidiMonitor。我想我需要在 iPhone 上创建一个目标点来接收 midi,但我不知道该怎么做。

你能帮帮我吗?示例源代码会很有用。

【问题讨论】:

  • 你的问题解决了吗?

标签: iphone xcode cocoa-touch midi coremidi


【解决方案1】:

就像@skinnyTOD 指出的那样,从 iOS 5.0 开始就可以使用 MediaPlayer。 首先将AVFoundationAudioToolbox 框架链接到您的项目,然后使用以下代码:

#import <AVFoundation/AVFoundation.h>

NSURL *midiUrl = [[NSBundle mainBundle] URLForResource:@"even voor mij" withExtension:@"mid"];
MusicPlayer player = NULL;
NewMusicPlayer(&player);
MusicSequence sequence = NULL;
NewMusicSequence(&sequence);
MusicSequenceFileLoad(sequence, (__bridge CFURLRef)midiUrl, NULL, NULL);
MusicPlayerSetSequence(player, sequence);
MusicPlayerStart(player);

这会使用捆绑包中的 MIDI 文件设置播放器,然后开始播放。 请注意,清理播放器时需要调用DisposeMusicSequenceDisposeMusicPlayer

【讨论】:

  • 文件完成时是否有回调?示例:如果我想在我的游戏中使用多个 midis 作为背景音乐,我想知道文件 #1 何时完成,以便我可以启动文件 #2,等等。谢谢!
  • 有趣的问题,我认为可以通过巧妙地使用 MusicSequence 来解决。无论如何,您可能决定将其作为单独的 stackoverflow 问题提出。
  • 感谢您的回答。不过我有一个问题。你知道像卡拉 OK 一样显示歌曲歌词的方法吗?
【解决方案2】:

如果您仍在尝试对此进行排序,iOS 5 包含 MusicPlayer API - 它可以加载、播放和创建 midi 文件。您还需要阅读新的AUSampler AudioUnit。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多