在Swift之前,通过data [0],data [1]等访问MIDIMetaEvent的数据。 为了获得时间签名,我需要数据部分中的两个值,标记为(UInt8)...与parens。 但是当我试图以这种方式获得价值时:
let midiMessage = UnsafePointer<MIDIMetaEvent>(eventData).memory
let data1 = midiMessage.data[0]
这会导致错误:"Cannot subscript a value of type 'UInt8' with an index of type 'Int'
任何线索我在这里做错了什么?只获得midiMessage.data
只返回数据的第一个字节。
答案 0 :(得分:0)
没有讽刺意图,但提交雷达并要求进行增强&#34;摆脱动态大小的数组使用元组。他们已经使用Core MIDI的某些部分完成了这项工作,但不是元事件。或MIDI直通。
如果他们只是将Core MIDI功能添加到AVFoundation(他们已经开始)以完全摆脱C API,那就太好了。
与此同时,您可以使用镜像https://github.com/jverkoey/swift-midi/blob/master/LUMI/CoreMIDI/MIDIPacket%2BSequenceType.swift
进行这样的扭曲