AKCallbackInstrument midiIn и статус обратного вызова не работает - PullRequest
0 голосов
/ 23 февраля 2019

Я обновил AudioKit до 4.6.1 и теперь не могу скомпилировать свое приложение.Возникли 2 проблемы, связанные с классом AKCallbackInstrument.

first:

callbackTrack?.setMIDIOutput(callbackInstrument.midiIn), что приводит к Value of type 'AKCallbackInstrument' has no member 'midiIn', что связано с тем, что AKCallbackInstrument наследуется от AKMIDIInstrument

second:

callbackInstrument.callback = { status, noteNumber, velocity in
    if(status == .noteOn){
        // ...
    }
}

это примечания: Ambiguous reference to member '==', этот вопрос я уже видел на SO, но ничего не помогло.

Спасибо:)

Ответы [ 2 ]

0 голосов
/ 29 июля 2019

Поскольку я получил несколько вопросов лично, я опубликую здесь, что сработало для меня, как принятый ответ.

измените AKCallbackInstrument на AKMIDICallbackInstrument, и API должен работать как положено.

* Пожалуйста, убедитесь, что вы используете версию, более новую, чем 4.6.1, поскольку исправления и изменения в компонентах MIDI были внесены в этом выпуске версии.

0 голосов
/ 23 февраля 2019

Похоже, это связано с переходом от MIDIStatus, являющегося типом, к MIDIStatus, являющимся объектом, содержащим тип.

public struct AKMIDIStatus {
    ...
    public var type: AKMIDIStatusType? {
        return AKMIDIStatusType(rawValue: Int(byte.highBit))
    }

Итак, попробуйте просто изменить код на s

if status.type == .noteOn {
    //
}
...