如何从文件.mid的元歌词字节中获取字符串文本



当我播放文件.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?
    }
}

我认为您在这里解析MIDI有点错误。查看这个链接,它对规范有一个很好的概述:

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

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

最新更新