Uaktualniłem Audiokit do 4.6.1, a teraz nie można skompilować mojej aplikacji. Wystąpiły 2 kwestie są podłączone do klasy AKCallbacksstrument.

Pierwszy:

callbackTrack?.setMIDIOutput(callbackInstrument.midiIn), który pojawia się Value of type 'AKCallbackInstrument' has no member 'midiIn', który jest żarliwy, ponieważ akcallbacksstrument dziedziczy z AKMIDIInstrument

Druga:

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

To uwagi: Ambiguous reference to member '==', ten problem, który już widziałem, ale nic nie pomogło.

Dzięki :)

1
Dima Gimburg 23 luty 2019, 19:45

2 odpowiedzi

Najlepsza odpowiedź

Ponieważ mam kilka pytań osobiście, opublikuję tutaj, co działało dla mnie jako akceptowanej odpowiedzi.

Zmień AKCallbackInstrument za pomocą AKMIDICallbackInstrument i API powinno działać zgodnie z oczekiwaniami.

* Upewnij się, że używasz wersji, która jest nowsza niż 4.6.1 jako poprawki i zmiany w składnikach MIDI zostały wykonane w tej wersji wersji.

0
Dima Gimburg 29 lipiec 2019, 10:11

Wygląda na to, że jest to spowodowane zmianą z Midistatusa będącym typem na Midistatus jest obiektem zawierającym typ.

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

Spróbuj więc zmienić swój kod do S

if status.type == .noteOn {
    //
}
1
Aurelius Prochazka 23 luty 2019, 19:43