2012-08-06 67 views
0

當我在播放文件.mid我得到了meta歌詞的字節,但我不知道如何從這個字節獲得元歌詞。任何人都可以幫助我做到這一點?感謝所有意見。如何從文件.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? 
    } 
} 

回答

0

我想你解析MIDI有點錯誤在這裏。看看這個鏈接,其中有規範的一個很好的概述:

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

不管怎麼說,MIDI歌詞事件是技術上MIDI元事件(如你的問題的標題就表明你已經知道)。所以狀態代碼應該是0xFF並且之後的將會是0x05。之後的字節會告訴您字符串有多長(以字節爲單位)。

+0

非常感謝!我已閱讀,但我不明白如何採取元事件,並得到歌詞串。 – nghiamas 2012-08-07 01:25:08