有没有人在 iPhone 上通过 midi->wav 转换等播放 .midi 文件的经验?

Posted

技术标签:

【中文标题】有没有人在 iPhone 上通过 midi->wav 转换等播放 .midi 文件的经验?【英文标题】:Does anyone have any experience with playing .midi files through midi->wav conversion or the like on the iPhone? 【发布时间】:2009-07-07 10:06:07 【问题描述】:

有没有人有在 iPhone 上通过 midi->wav 转换之类的播放 .midi 文件的经验?

【问题讨论】:

【参考方案1】:

Iphone 需要声音采用某些有效格式。不确定是否直接支持 midi,但 MacOSX 带有用于转换声音的命令行工具。

我会在我的声音文件上运行以下命令,以将它们转换为我知道可行的格式。

afconvert -v -f caff -d ima4 -c 1 文件名.ext

并播放音效或环境声音,如下所示

+ (void)PlaySFX:(NSString*)name

    NSUserDefaults* savedState = [NSUserDefaults standardUserDefaults]; 

    if ([savedState boolForKey:SFX])
    
        UInt32 sessionCategory = kAudiosessionCategory_MediaPlayback;
        AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory); 

        SystemSoundID sound;  
        AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:name ofType:@"caf"]], &sound);  
        AudioServicesPlaySystemSound (sound);   
    


+ (void)StartAmbientSound

    NSUserDefaults* savedState = [NSUserDefaults standardUserDefaults]; 

    player = [[AVAudioPlayer alloc] initWithContentsOfURL: [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Volcano Erupting" ofType:@"caf"]] error: nil];
    player.numberOfLoops = -1;
    player.currentTime = 0;
    player.volume = [savedState floatForKey:MUSICVOL];
    [player play];  

【讨论】:

以上是关于有没有人在 iPhone 上通过 midi->wav 转换等播放 .midi 文件的经验?的主要内容,如果未能解决你的问题,请参考以下文章

通过 OSC 传递 MIDI 的现有标准?

通过虚拟输出使用 AKSequencer 发送 midi

使用 QT 通过 USB 发送 midi 消息

从 MIDI 轨道弹出消息

使用 Windows MIDI API 出现问题(播放时没有回调)

通过 Python 在 Midi 的特定时间写笔记