2017-03-04 12 views
1

저는 Wi-Fi를 통해 미디를 전송해야하는 앱을 만들고 있습니다. CoreMIDI와 MIDINetworkSession 클래스를 살펴 보았습니다. 기본 세션의 정책을 .anyone으로 설정하고 활성화했습니다. 그러나 나는 다음에 무엇을해야하는지 명확하지 않다. PGMidi를 보았지만 세션을 변경 한 후 원격 호스트의 MIDI 포트를 나열하지 않았습니다.CoreMIDI를 사용하여 네트워크를 통해 사용 가능한 모든 MIDI 포트를 찾는 방법은 무엇입니까?

내가 원하는 것은 MacOSX를 실행하는 원격 컴퓨터에서 연결할 수있는 모든 MIDI 포트 목록입니다.

심지어 가능합니까? 누군가 나에게 힌트를 주실 수 있습니까?

답변

0

알아낼 수있었습니다.

원격 서비스 내 맥은 봉주르를 통해하는 MIDI 세션을 실행하는 가정을 스캔 : 여기에 내가 무슨 짓을했는지입니다. NetServiceBrowser를 사용하여 로컬 네트워크를 검색하고 "_apple-midi._udp"서비스를 지원하는 서버를 찾습니다. Look at the documentation.. NetServiceBrowserDelegate는 델리게이트 콜백에서 서비스를받습니다. 서비스 개체가 아직 DNS에 대해 확인되지 않았으므로 호스트의 IP 주소가 포함되어 있지 않습니다. 다음 단계는 NetServiceDelegate를 사용하여 서비스를 해결하는 것입니다. 성공 대리자 콜백에서 전달 된 서비스 개체에는 해당 서비스에 대해 알아야 할 모든 것이 들어 있습니다. 이제 IP 주소/호스트 이름과 해당 포트 번호 목록을 얻었습니다.

MIDI 보내기 ip 주소/호스트 이름과 포트 번호를 사용하여 MIDINetworkConnection 인스턴스를 만듭니다. 그것은 동기 호출처럼 보이므로 서버 자체에 접속하지 않을 수도 있습니다. 그런 다음 모든 미디 장치를 가져 와서 엔티티 및 대상을 반복합니다. Its given in this document