0

当我播放文件.mid时,我得到元歌词的字节,但我不知道如何从这个字节中获取元歌词。任何人都可以帮助我做到这一点吗?感谢所有评论。

void MyMIDIReadProc(const MIDIPacketList *pktlist, void *refCon, void *connRefCon) {

MIDIPacket *packet = (MIDIPacket *)pktlist->packet;

for (int i=0; i < pktlist->numPackets; i++) {
    Byte midiStatus = packet->data[4];
    Byte midiCommand = midiStatus >> 4;
    if (midiCommand == 0x05){
        NSLog(@"meta event 0x%x",midiCommand1);
        //how to get meta text here?
    }
}
4

1 回答 1

0

我认为您在这里解析 MIDI 有点不正确。查看此链接,该链接对规范有很好的概述:

http://www.sonicspot.com/guide/midifiles.html

无论如何,MIDI 歌词事件在技术上是 MIDI 元事件(因为您的问题标题表明您已经知道)。所以状态码应该是,后面0xFF的字节是。之后的字节告诉你字符串有多长(以字节为单位)。0x05

于 2012-08-06T13:18:07.540 回答