Swift 2: Как разобрать временную подпись с MIDIMetaEvent?
До Swift доступ к данным MIDIMetaEvent осуществлялся через data[0], data[1] и т. Д. Чтобы получить временную сигнатуру, мне нужны два значения из части данных, которая помечена как (UInt8)... с паренами. Но когда я пытаюсь получить значение таким образом:
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
возвращает только первый байт данных.
1 ответ
Никакой snark не предназначен, но подайте Radar и попросите "улучшение", чтобы избавиться от использования кортежей для динамически изменяемых массивов. Они сделали это уже с некоторыми частями Core MIDI, но не с мета-событиями. Или MIDI через.
Было бы хорошо, если бы они просто добавили функциональность Core MIDI в AVFoundation (они начали), чтобы полностью избавиться от C API.
В то же время вы можете пройти через такие искажения, которые используют Mirror https://github.com/jverkoey/swift-midi/blob/master/LUMI/CoreMIDI/MIDIPacket%2BSequenceType.swift