CoreMidi无法在iOS13中正常工作

时间:2019-12-10 15:08:15

标签: swift ios13 midi coremidi

以下代码为我提供了所有可用的MIDI设备的名称。 直到iOS12.4,一切正常。我得到了USB设备和“网络会话”。 从iOS13开始,我只获得USB设备。但是,如果没有“网络会话”,就无法连接到Ableton Live这样的计算机上的软件MIDI设备。

func getSourceNames() -> [String] {
    var names:[String] = [];
    let count: Int = MIDIGetNumberOfSources();
    for i in 0..<count {
        let endpoint:MIDIEndpointRef = MIDIGetSource(i);
        if (endpoint != 0) {
            if let name = getDisplayName(endpoint) {
                names.append(name)
            }
        }
    }
    return names;
}

func getDisplayName(_ obj: MIDIObjectRef) -> String?
{
    var param: Unmanaged<CFString>?
    var name: String? = nil

    let err: OSStatus = MIDIObjectGetStringProperty(obj, kMIDIPropertyDisplayName, &param)
    if enabled, err == OSStatus(noErr)
    {
        name =  param!.takeRetainedValue() as String
    }
    return name
}

更新(12.12.2019) 查找原因: 我必须立即启用网络会话。

MIDINetworkSession.default().isEnabled = true
MIDINetworkSession.default().connectionPolicy = .anyone

0 个答案:

没有答案