Ich arbeite an einem Spiel in Objective-C. Die Siri-Fernbedienung funktioniert großartig über GCMicroGamepad und echte MFi-Controller funktionieren gut über GCGamepad. IR-Fernbedienungen von Drittanbietern funktionieren jedoch überhaupt nicht im Spiel (und auch nicht die Remote-App auf dem iPhone oder eine ältere Fernbedienung von Apple TV 3rd Gen). Wie kann ich erkennen und unterscheiden diese Eingänge?tvOS - Spiel Kontrolle über nicht-Siri Fernbedienung
Zwei Tage später ... ich gefunden habe, dass ein UITapGestureRecognizer zu erkennen Up verwendet werden kann, unten, links, rechts und wählen Ereignisse richtig, wenn sie mit einer Dritt TV-Fernbedienung oder iPhone Remote.app präsentiert. Die Richtungsereignisse sind für diese Art von Fernbedienungen auch tatsächlich einzigartig - die Siri-Fernbedienung erzeugt keine Richtungs-Tippereignisse. Wenn Sie jedoch auf der Siri-Fernbedienung oder der Drittanbieter- oder iPhone-Fernbedienung auf die Auswahltaste tippen, wird ein Select-Ereignis aus meiner Tap-Erkennung generiert. Ich brauche einen Weg, um die beiden zu unterscheiden.
Das einzige Unterscheidungsmerkmal ich finden kann, ist, dass der Siri Fern Klopfen auch erzeugt einen Button-A Druck auf der GCMicroGamepad-a Dritt Fernbedienung oder iPhone Remote.app beeinflusst nicht die GCMicroGamepad überhaupt. Es ist jedoch sehr unelegant zu versuchen, das GCMicroGamepad für Tap-Release-Ereignisse zu sehen und dann dieses Ereignis zu verwenden, um ein passendes Select-Button-Ereignis herauszufiltern. Sicherlich ist es keine empfohlene Verwendung der APIs; es scheint keine gute langfristige Lösung zu sein. Wenn ich der Siri-Fernbedienung sagen könnte, dass sie im GCMicroGampepad-Modus keine UI-Ereignisse mehr erzeugt, wäre das hervorragend.
Haben Sie die Tech-Talk-Videos überprüft: https://developer.apple.com/videos/play/techtalks-apple-tv/4/ – Stefan
Spricht das Gespräch die remote.app überhaupt ?? Daran erinnere ich mich nicht. – StilesCrisis
Nein, nur Siri Remote und Gamecontroller. Entschuldigung, ich habe diesen Teil in Ihrer Frage verpasst. – Stefan