从MusicTrack获取Meta事件

时间:2013-06-25 00:31:30

标签: macos core-audio coremidi

我想要音乐曲目中的MetaEvent信息。我怎么得到它?我对该曲目的曲目名称和乐器名称感兴趣。

我看到MusicTrack有newMetaEvent方法,但没有办法获得它。这个当然是在Core Audio& OS X。

谢谢

1 个答案:

答案 0 :(得分:0)

使用MusicEventIterator迭代跟踪事件,获取eventInfo并测试您正在寻找的eventType。一些参考文献来自下面的文档。如何使用MusicEventIterator的示例代码是here.


OSStatus MusicEventIteratorGetEventInfo (
   MusicEventIterator  inIterator,
   MusicTimeStamp      *outTimeStamp,
   MusicEventType      *outEventType,
   const void          **outEventData,
   UInt32              *outEventDataSize
); 

音乐事件类型

MIDI和其他音乐事件类型,由音乐事件迭代器函数使用。

enum {
   kMusicEventType_NULL = 0,
   kMusicEventType_ExtendedNote,
   kMusicEventType_ExtendedTempo,
   kMusicEventType_User,
   kMusicEventType_Meta,
   kMusicEventType_MIDINoteMessage,
   kMusicEventType_MIDIChannelMessage,
   kMusicEventType_MIDIRawData,
   kMusicEventType_Parameter,
   kMusicEventType_AUPreset,
};
typedef UInt32 MusicEventType;