Werben Sie Bluetooth MIDI auf iOS manuell, ohne CABTMIDILocalPeripheralViewController

9

Ich habe gerade CABTMIDILocalPeripheralViewController für iOS entdeckt, welches handhabt Benutzereinstellungen zum Aktivieren der Bluetooth MIDI-Erkennbarkeit. Das ist gut und gut, aber um Bluetooth in den Rest meiner App zu integrieren Netzwerk-MIDI-Konnektivität wäre es gut, in der Lage zu sein, die direkt aus dem Code meiner App heraus, anstatt sich auf diesen undurchsichtigen VC zu verlassen. Weiß jemand, ob das möglich ist?

    
Hari Karam Singh 05.10.2015, 20:35
quelle

3 Antworten

1

Es gibt keine öffentliche API, um diese Funktionalität zu verwalten. Bei Untersuchungen mit Instrumenten scheint der Schalter eine Instanziierung von CBPeripheralManager zu verursachen. Ich nehme an, dass es das Gerät als ein Bluetooth-Peripheriegerät einrichtet und die Daten manuell zu und von einem MIDIEndpointRef kanalisiert, das ebenfalls erstellt wurde.

Mit anderen Worten, es gibt keine Einzellinienlösung. Wenn ich diesen Weg noch weiter gehe, poste ich den Code, es sei denn, jemand anders möchte es ausprobieren ...

AKTUALISIEREN

Der magische Code ...

%Vor%

Diese IDs definieren ein MIDI-Peripheriegerät. Weitere Informationen:

Früher hatte Apple einen Doc bei

... was nicht mehr ist. Ich würde gerne eine alte Kopie finden, wie sich herausstellt, dass der Empfängercode (emulieren CABTMIDICentralViewController ) noch schwieriger zu knacken ist ...

    
Hari Karam Singh 21.10.2015, 11:25
quelle
1

Ich habe also eine ziemlich hacky Lösung zusammengestellt, um herauszufinden, auf welches MIDI-Gerät der Benutzer einmal im CABTMIDICentralViewController geklickt hat. Ich bin nicht sicher, ob das eine gute Idee ist - wenn Apple die Interna des Controllers ändert, wird es nicht mehr funktionieren. Ich bin mir auch nicht sicher, ob es "legal" bezüglich App Store Richtlinien ist. Wer weiß mehr Infos dazu?

DPBleMidiDeviceManager.h:

%Vor%

DPBleMidiDeviceManager.m:

%Vor%

Dann können Sie in Ihrem übergeordneten Ansichts-Controller das Ergebnis vom Delegaten abrufen und nach einem neuen MIDI-Gerät suchen, das diesem Namen entspricht:

%Vor%

Die einzige Alternative, die mir einfällt, ist, nach MIDI-Geräten zu suchen, bevor der Controller angezeigt wird, die Liste der Geräte zu speichern und dann den Controller zu öffnen. Wenn es geschlossen wird, scannen Sie die MIDI-Geräte erneut und verschmelzen Sie die neue Liste mit der alten. Alle neuen MIDI-Geräte, die angezeigt werden, sind diejenigen, die der Benutzer ausgewählt hat. Nicht sicher, warum Apple uns das nicht leichter gemacht hat ...

    
phreakhead 31.10.2015 23:18
quelle
0

Ich denke, Sie könnten nach diesem suchen: CABTMIDICentralViewController Weitere Informationen auf dieser Seite: Ссылка  Dies hilft Ihnen beim Scannen und Verbinden mit Geräten über Ihre App. Ich bin mir nicht sicher, ob Sie nur entdeckt werden wollen oder auch derjenige, der scannt. Ich hoffe, das hilft

    
Rudra Matroja 20.10.2015 12:36
quelle