【发布时间】:2021-12-21 17:50:38
【问题描述】:
我正在使用最新的 macOS、Xcode、Swift 和 AudioKit 版本...
我设置了 MIDIListener 来打印收到的任何消息。收到的唯一消息是“receivedMIDISetupChange”。 尝试打印收到的任何“noteOn”消息。 它适用于 macOS 项目,但不适用于 ios 项目。 请帮忙!
import AudioKit
import UIKit
import CoreAudioKit
class ViewController: UIViewController, MIDIListener {
let midi = MIDI()
override func viewDidLoad() {
super.viewDidLoad()
midi.openInput()
midi.addListener(self)
}
func receivedMIDINoteOn(noteNumber: MIDINoteNumber, velocity: MIDIVelocity, channel: MIDIChannel, portID: MIDIUniqueID?, timeStamp: MIDITimeStamp?) {
print(noteNumber)
}
func receivedMIDINoteOff(noteNumber: MIDINoteNumber, velocity: MIDIVelocity, channel: MIDIChannel, portID: MIDIUniqueID?, timeStamp: MIDITimeStamp?) {
}
func receivedMIDIController(_ controller: MIDIByte, value: MIDIByte, channel: MIDIChannel, portID: MIDIUniqueID?, timeStamp: MIDITimeStamp?) {
print("receivedMIDIController")
}
func receivedMIDIAftertouch(noteNumber: MIDINoteNumber, pressure: MIDIByte, channel: MIDIChannel, portID: MIDIUniqueID?, timeStamp: MIDITimeStamp?) {
}
func receivedMIDIAftertouch(_ pressure: MIDIByte, channel: MIDIChannel, portID: MIDIUniqueID?, timeStamp: MIDITimeStamp?) {
}
func receivedMIDIPitchWheel(_ pitchWheelValue: MIDIWord, channel: MIDIChannel, portID: MIDIUniqueID?, timeStamp: MIDITimeStamp?) {
}
func receivedMIDIProgramChange(_ program: MIDIByte, channel: MIDIChannel, portID: MIDIUniqueID?, timeStamp: MIDITimeStamp?) {
print("receivedMIDIProgramChange")
}
func receivedMIDISystemCommand(_ data: [MIDIByte], portID: MIDIUniqueID?, timeStamp: MIDITimeStamp?) {
print("receivedMIDISystemCommand")
}
func receivedMIDISetupChange() {
print("receivedMIDISetupChange")
}
func receivedMIDIPropertyChange(propertyChangeInfo: MIDIObjectPropertyChangeNotification) {
print("receivedMIDIPropertyChange")
}
func receivedMIDINotification(notification: MIDINotification) {
print("receivedMIDINotification")
}
}
【问题讨论】:
标签: ios swift ios-simulator midi audiokit