如何使用CoreMIDI在网络上找到所有可用的MIDI端口?

时间:2017-03-04 05:24:30

标签: swift xcode swift3 coremidi

我正在开发一款需要通过wifi发送Midi的应用。我查看了CoreMIDI和MIDINetworkSession类。我已将默认会话的策略设置为.anyone并启用了它。但我不清楚接下来该做什么。我查看了PGMidi但是在更改会话后它没有列出远程主机的MIDI端口。

我想要的是我可以在运行MacOSX的远程机器上连接的所有MIDI端口的列表。

甚至可能吗?有人可以给我一些提示吗?

1 个答案:

答案 0 :(得分:0)

我能够弄清楚。这是我做的:

扫描远程服务 假设我的mac正在运行一个通过Bonjour进行广告的MIDI会话。我使用NetServiceBrowser扫描本地网络,找出哪个服务器支持“_apple-midi._udp”服务。 Look at the documentation.。 NetServiceBrowserDelegate在委托回调中接收服务。请注意,服务对象尚未针对DNS解析,因此不包含主机的IP地址。 下一步是使用NetServiceDelegate解析服务。成功委托回调中传递的服务对象包含有关该服务的所有信息。现在,您有一个IP地址/主机名列表和相应的端口号。

发送MIDI 使用ip地址/主机名和端口号创建MIDINetworkConnection实例。它看起来像一个同步调用,因此它可能不会联系服务器本身。接下来,获取所有midi设备并迭代实体和目标。 Its given in this document