Siri Remote a ovladače Bluetooth pro tvOS v Xamarinu

Uživatelé vaší aplikace Xamarin.tvOS nebudou pracovat s rozhraním přímo jako s iOSem, kde klepnou na obrázky na obrazovce zařízení, ale nepřímo z celé místnosti pomocí Siri Remoteu.

Pokud je vaše aplikace hra, můžete volitelně vytvořit podporu pro třetí stranu, Made For iOS (MFI) Herní ovladače Bluetooth v aplikaci.

Ovladač Bluetooth Remote a Game Controller

Tento článek popisuje tlačítka Siri Remote, dotyková zařízení Surface a tlačítka Siri Remote a ukazuje, jak s nimi pracovat pomocí gest a scénářů, gest a kódu a zpracování událostí nízké úrovně. Nakonec se zabývá prací s herními řadiči v aplikaci Xamarin.tvOS.

The Siri Remote

Hlavním způsobem, jak uživatelé budou pracovat s Apple TV a vaší aplikací Xamarin.tvOS, je prostřednictvím zahrnutého Siri Remoteu. Apple navrhl dálkové ovládání tak, aby přemostilo vzdálenost mezi uživatelem sedícím na gauči a uživatelským rozhraním Apple TV zobrazeným přes místnost na obrazovce televizoru.

Vaším úkolem jako vývojář aplikace tvOS je vytvoření rychlého, snadno použitelného a vizuálně atraktivního uživatelského rozhraní, které využívá dotykovou plochu Siri Remote, akcelerometr, gyroskop a tlačítka.

The Siri Remote

Siri Remote má v aplikaci tvOS následující funkce a očekávané využití:

Funkce Obecné využití aplikací Využití herních aplikací
Dotykový surface
Potáhnutím prstem přejděte, stisknutím klávesy vyberte a podržte místní nabídky.
Klepnutí nebo potáhnutí prstem
Navigace v uživatelském rozhraní mezi fokusovatelnými položkami

Klepněte
Aktivuje vybranou položku (fokus).
Klepnutí nebo potáhnutí prstem
Závisí na návrhu hry a dá se použít jako D-Pad klepnutím na hrany.

Klepněte
Proveďte funkci primárního tlačítka.
Nabídka
Stisknutím se vrátíte na předchozí obrazovku nebo nabídku.
Vrátí se na předchozí obrazovku a ukončí domovskou obrazovku Apple TV z hlavní obrazovky aplikace. Pozastavte a obnovte hraní, vrátí se na předchozí obrazovku a ukončí se na domovskou obrazovku Apple TV z hlavní obrazovky aplikace.
Siri/Search
V zemích se Siri stiskněte a podržte pro hlasové ovládání ve všech ostatních zemích obrazovku hledání.
Není k dispozici Není k dispozici
Přehrát/pozastavit
Přehrávání a pozastavení médií nebo poskytnutí sekundární funkce v aplikacích
Spustí přehrávání médií a pozastaví nebo obnoví přehrávání. Provede sekundární funkci tlačítka nebo přeskočí úvodní video (pokud existuje).
Domovská stránka
Stisknutím se vrátíte na domovskou obrazovku, poklikáním zobrazíte spuštěné aplikace, stisknutím a podržením zařízení do režimu spánku.
Není k dispozici Není k dispozici
Objem
Ovládací prvky připojené hlasitosti zvukového zařízení/videozastroje.
Není k dispozici Není k dispozici

Gesta dotykového zařízení Surface

Dotykové zařízení Siri Remote dokáže rozpoznat nejrůznější gesta jedním prstem, na která můžete reagovat v aplikaci Xamarin.tvOS:

Potáhnutí Klikněte na Klepnout
Přesune výběr. Aktivuje vybranou položku. Směrová tlačítka
Přesune výběr (fokus) mezi prvky uživatelského rozhraní na obrazovce (nahoru, dolů doleva, doprava). Potáhnutí prstem se dá použít k rychlému procházení rozsáhlých seznamů obsahu pomocí inertia. Aktivuje vybranou položku (fokus) nebo funguje jako primární tlačítko ve hře. Kliknutím a podržením můžete aktivovat místní nabídky nebo sekundární funkce. Mírně klepněte na touch Surface na hranách, jako jsou směrová tlačítka na D-Padu, pohyb fokusu nahoru, dolů, doleva nebo doprava v závislosti na oblasti, na kterou jste klepli. V závislosti na aplikaci se dají použít k zobrazení skrytých ovládacích prvků.

Apple nabízí následující návrhy pro práci s gesty dotykového zařízení Surface:

  • Rozlišovat mezi kliknutími a klepnutími – Kliknutí je úmyslná akce uživatele a je vhodná pro výběr, aktivaci a primární tlačítko hry. Klepnutí je jemněji a mělo by se používat střídmě, protože uživatel často drží Siri Remote v ruce a může událost klepnutím snadno aktivovat.
  • Nepřeefinujte standardní gesta – uživatel očekává, že konkrétní gesta budou provádět konkrétní akce, neměli byste v aplikaci předefinovat význam ani funkci těchto gest. Jedinou výjimkou je herní aplikace během aktivního hraní.
  • Definujte nová gesta střídmě – uživatel opět očekává, že konkrétní gesta budou provádět konkrétní akce. Měli byste se vyhnout definování vlastních gest pro provádění standardníchakcích A opět, hry jsou nejběžnější výjimkou, kde vlastní gesta mohou přidat zábavu, imerzivní hraní do hry.
  • V případě potřeby reagovat na D-Pad Taps - Lehce klepněte na rohové okraje dotykového zařízení Surface bude reagovat jako D-Pad na herním ovladači pohybující se fokus nebo směr nahoru, dolů, doleva nebo doprava. V případě potřeby byste na tato gesta měli reagovat ve své aplikaci nebo hře.

Tlačítka Siri Remote

Kromě gest na dotykovém zařízení Surface může vaše aplikace reagovat na uživatele, který klikne na dotykové zařízení Surface nebo stisknete tlačítko Přehrát/Pozastavit. Pokud používáte Siri Remote pomocí rozhraní herního ovladače, můžete také zjistit stisknutí tlačítka Nabídky.

Tlačítka nabídky lze navíc rozpoznat pomocí funkce Rozpoznávání gest se standardními UIKit prvky. Pokud zachytíte stisknuté tlačítko nabídky, budete zodpovědní za zavření aktuálního zobrazení a kontroleru zobrazení a návratu k předchozí.

Důležité

Funkci byste měli vždy přiřadit tlačítku Přehrát/Pozastavit na vzdáleném počítači. Když máte nefunkční tlačítko, může aplikace vypadat jako nefunkční pro koncového uživatele. Pokud pro toto tlačítko nemáte platnou funkci, přiřaďte stejnou funkci jako primární tlačítko (touch Surface Click).

Gesta a scénáře

Nejjednodušší způsob, jak pracovat se Siri Remoteem v aplikaci Xamarin.tvOS, je přidat rozpoznávání gest do zobrazení v Návrháři rozhraní.

Pokud chcete přidat rozpoznávání gest, postupujte takto:

  1. V Průzkumník řešení poklikejte na Main.storyboard soubor a otevřete ho pro úpravy Návrháře rozhraní.

  2. Přetáhněte rozpoznávání gest klepnutím z knihovny a přesuňte ho do zobrazení:

    Rozpoznávání gest klepnutím

  3. Zaškrtněte políčko v části Tlačítko inspektoru atributů:

    Zaškrtnout políčko

  4. Výběr znamená, že gesto bude reagovat na uživatele, který klikne na Touch Surface na Siri Remoteu. Máte také možnost reagovat na tlačítka Nabídky, Přehrát/Pozastavit, Nahoru, Dolů, Vlevo a Vpravo.

  5. Pak zřetězte akci z rozpoznávání gest klepnutím a zavolejte ji TouchSurfaceClicked:

    Akce z rozpoznávání gest klepnutím

  6. Uložte změny a vraťte se do Visual Studio pro Mac.

Upravte soubor Kontroleru zobrazení (příklad FirstViewController.cs) a přidejte následující kód pro zpracování gesta, které se aktivuje:

using System;
using UIKit;

namespace tvRemote
{
    public partial class FirstViewController : UIViewController
    {
        ...

        #region Custom Actions
        partial void TouchSurfaceClicked (Foundation.NSObject sender) {
            // Handle click here
            ...
        }
        #endregion
    }
}

Další informace o práci se storyboardy najdete v naší úvodní příručce Hello, tvOS. Konkrétně vytváření uživatelského rozhraní a psaní kódu s výstupy a akce oddíly.

Gesta a kód

Volitelně můžete vytvářet gesta přímo v kódu jazyka C# a přidávat je do zobrazení v uživatelském rozhraní. Pokud chcete například přidat řadu rozpoznávání gest potáhnutí prstem, upravte ovladač zobrazení a přidejte následující kód:

using System;
using UIKit;

namespace tvRemote
{
    public partial class SecondViewController : UIViewController
    {
        #region Constructors
        public SecondViewController (IntPtr handle) : base (handle)
        {
        }
        #endregion

        #region Override Methods
        public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();

            // Wire-up gestures
            var upGesture = new UISwipeGestureRecognizer (() => {
                RemoteView.ArrowPressed = "Up";
                ButtonLabel.Text = "Swiped Up";
            }) {
                Direction = UISwipeGestureRecognizerDirection.Up
            };
            this.View.AddGestureRecognizer (upGesture);

            var downGesture = new UISwipeGestureRecognizer (() => {
                RemoteView.ArrowPressed = "Down";
                ButtonLabel.Text = "Swiped Down";
            }) {
                Direction = UISwipeGestureRecognizerDirection.Down
            };
            this.View.AddGestureRecognizer (downGesture);

            var leftGesture = new UISwipeGestureRecognizer (() => {
                RemoteView.ArrowPressed = "Left";
                ButtonLabel.Text = "Swiped Left";
            }) {
                Direction = UISwipeGestureRecognizerDirection.Left
            };
            this.View.AddGestureRecognizer (leftGesture);

            var rightGesture = new UISwipeGestureRecognizer (() => {
                RemoteView.ArrowPressed = "Right";
                ButtonLabel.Text = "Swiped Right";
            }) {
                Direction = UISwipeGestureRecognizerDirection.Right
            };
            this.View.AddGestureRecognizer (rightGesture);
        }
        #endregion
    }
}

Zpracování událostí nízké úrovně

Pokud vytváříte vlastní typ založený na UIKit aplikaci Xamarin.tvOS (například UIView), máte také možnost zajistit nízké zpracování stisknutí tlačítka prostřednictvím UIPress událostí.

Událostí UIPress je tvOS, co UITouch je událost v iOSu, s výjimkou UIPress informací o tlačítkách stisknutí tlačítka na Siri Remote nebo jiných připojených zařízeních Bluetooth (jako herní ovladač). UIPress události popisují stisknutí tlačítka a jeho stav (Zahájeno, Zrušeno, Změněno nebo Ukončeno).

U analogových tlačítek na zařízeních, jako jsou herní ovladače Bluetooth, UIPress vrátí také množství síly použité na tlačítko. Vlastnost TypeUIPress události definuje, které fyzické tlačítko se změnilo, zatímco zbývající vlastnosti popisují změnu, ke které došlo.

Následující kód ukazuje příklad zpracování událostí nízké úrovně UIPress pro UIView:

using System;
using Foundation;
using UIKit;

namespace tvRemote
{
    public partial class EventView : UIView
    {
        #region Computed Properties
        public override bool CanBecomeFocused {
            get {
                return true;
            }
        }
        #endregion

        #region
        public EventView (IntPtr handle) : base (handle)
        {
        }
        #endregion

        #region Override Methods
        public override void PressesBegan (NSSet<UIPress> presses, UIPressesEvent evt)
        {
            base.PressesBegan (presses, evt);

            foreach (UIPress press in presses) {
                // Was the Touch Surface clicked?
                if (press.Type == UIPressType.Select) {
                    BackgroundColor = UIColor.Red;
                }
            }
        }

        public override void PressesCancelled (NSSet<UIPress> presses, UIPressesEvent evt)
        {
            base.PressesCancelled (presses, evt);

            foreach (UIPress press in presses) {
                // Was the Touch Surface clicked?
                if (press.Type == UIPressType.Select) {
                    BackgroundColor = UIColor.Clear;
                }
            }
        }

        public override void PressesChanged (NSSet<UIPress> presses, UIPressesEvent evt)
        {
            base.PressesChanged (presses, evt);
        }

        public override void PressesEnded (NSSet<UIPress> presses, UIPressesEvent evt)
        {
            base.PressesEnded (presses, evt);

            foreach (UIPress press in presses) {
                // Was the Touch Surface clicked?
                if (press.Type == UIPressType.Select) {
                    BackgroundColor = UIColor.Clear;
                }
            }
        }
        #endregion
    }
}

Stejně jako u UITouch událostí, pokud potřebujete implementovat některé z UIPress přepsání události, měli byste implementovat všechny čtyři.

Herní ovladače Bluetooth

Kromě standardního Siri Remote, který se dodává s Apple TV, třetí stranou, Made For iOS (MFI) Bluetooth Herní ovladače lze spárovat s Apple TV a používat k ovládání aplikace Xamarin.tvOS.

Herní ovladače Bluetooth

Herní řadiče lze použít k vylepšení hry a poskytnout smysl pro ponořování do hry. Dají se také použít k ovládání standardního rozhraní Apple TV, takže použití nemusí přepínat mezi vzdáleným zařízením a ovladačem.

Důležité

Herní ovladače Bluetooth jsou volitelný nákup, který by koncoví uživatelé mohli provést, vaše aplikace nemůže vynutit, aby si ho uživatel koupil. Pokud vaše aplikace podporuje herní řadiče, musí také podporovat Siri Remote, aby ji mohli používat všichni uživatelé Apple TV.

Herní ovladač má v aplikaci tvOS následující funkce a očekávané využití:

Funkce Obecné využití aplikací Využití herních aplikací
D-Pad Prochází prvky uživatelského rozhraní (fokus změn). Závisí na hře.
A Aktivuje vybranou položku (fokus). Provede funkci primárního tlačítka a potvrdí akce dialogového okna.
B Vrátí se na předchozí obrazovku nebo se ukončí na domovskou obrazovku, pokud je na hlavní obrazovce aplikace. Provede funkci sekundárního tlačítka nebo se vrátí na předchozí obrazovku.
X Spustí přehrávání médií nebo pozastaví nebo obnoví přehrávání. Závisí na hře.
Y Není k dispozici Závisí na hře.
Nabídka Vrátí se na předchozí obrazovku nebo se ukončí na domovskou obrazovku, pokud je na hlavní obrazovce aplikace. Pozastavit nebo pokračovat v hraní hry, vrátí se na předchozí obrazovku nebo se ukončí na domovskou obrazovku, pokud je na hlavní obrazovce aplikace.
Levé ramenní tlačítko Přejde doleva. Závisí na hře.
Levá aktivační událost Přejde doleva. Závisí na hře.
Pravé ramenní tlačítko Přejde doprava. Závisí na hře.
Pravá aktivační událost Přejde doprava. Závisí na hře.
Levý palec Prochází prvky uživatelského rozhraní (fokus změn). Závisí na hře.
Pravá kryptografický znaménka Není k dispozici Závisí na hře.

Apple nabízí následující návrhy pro práci s herními ovladači:

  • Potvrďte Připojení iony herního ovladače – koncový uživatel může aplikaci tvOS kdykoli spustit a zastavit. Vždy byste měli zkontrolovat přítomnost herního ovladače na začátku nebo vzhůru časy a podle potřeby provést akci.
  • Ujistěte se, že vaše aplikace funguje na Siri Remote i herních řadičích – k používání aplikace nevyžadují, aby uživatelé přepnuli mezi Siri Remote a herním ovladačem. Otestujte aplikaci často pomocí obou typů kontrolerů a ujistěte se, že všechno je snadné procházet a fungovat podle očekávání.
  • Zadejte způsob zpět – Stisknutí tlačítka nabídky by se mělo vždy vrátit na předchozí obrazovku. Pokud je uživatel na hlavní obrazovce aplikace, mělo by se tlačítko Nabídky vrátit na domovskou obrazovku Apple TV. Během hraní hry by mělo být na tlačítku Nabídka zobrazena výstraha, která uživateli dává možnost pozastavit nebo obnovit hraní hry nebo se vrátit do hlavní nabídky.

Práce s herními ovladači

Jak jsme uvedli výše, kromě standardní siri remote, který se dodává s Apple TV, může uživatel volitelně připojit třetí stranu, Made For iOS (MFI) Bluetooth Herní ovladače a používat ho k ovládání aplikace Xamarin.tvOS.

Pokud vaše aplikace vyžadovala vstup kontroleru nízké úrovně, můžete použít rozhraní Herního kontroleru Společnosti Apple, které má následující úpravy pro tvOS:

  • Profil Micro Game Controller (GCMicroGamepad) byl přidán pro cílení na Siri Remote.
  • Nová GCEventViewController třída se dá použít ke směrování událostí herního kontroleru prostřednictvím vaší aplikace. Další podrobnosti najdete v části Určení vstupu herního adaptéru níže.

Požadavky na podporu herního adaptéru

Apple má několik specifických požadavků, které musí být splněny, pokud vaše aplikace Xamarin.tvOS podporuje herní řadiče:

  • Musíte podporovat Siri Remote – Vždy musíte podporovat Siri Remote. Vaše hra nemůže vyžadovat, aby byl herní ovladač třetí strany hratelný.
  • Musíte podporovat rozšířené rozložení ovládacího prvku - Všechny tvOS herní řadiče jsou neformfitting, rozšířené ovladače.
  • Hry musí být hratelné s samostatnými ovladači - Pokud vaše aplikace podporuje rozšířený herní ovladač, musí být hrat pouze s tímto herním ovladačem.
  • Musíte podporovat tlačítko Přehrát/Pozastavit - Pokud uživatel stiskne tlačítko Přehrát/Pozastavit, měli byste uživateli zobrazit upozornění, které uživateli umožní pozastavit nebo obnovit hraní hry nebo se vrátit do hlavní nabídky.

Povolení podpory herního adaptéru

Pokud chcete povolit podporu herního adaptéru v aplikaci Xamarin.tvOS, poklikejte na Info.plist soubor v Průzkumník řešení ho otevřete pro úpravy:

Editor Info.plist

V části Herní ovladač umístěte kontrolu podle povolení herních řadičů a zkontrolujte všechny typy herního adaptéru, které bude aplikace podporovat.

Použití Siri Remoteu jako herního ovladače

Siri Remote, který je součástí Apple TV, se dá použít jako omezený herní ovladač. Podobně jako ostatní herní řadiče se zobrazuje v rozhraní Herního kontroleru jako GCController objekt a podporuje jak profily, tak GCMotion profily GCMicroGamepad .

Siri Remote má následující charakteristiky při použití jako herní ovladač:

  • Touch Surface lze použít jako D-pad, který poskytuje analogová vstupní data.
  • Vzdálené zařízení je možné použít v orientaci na výšku nebo na šířku a aplikace se rozhodne, jestli by objekt profilu měl automaticky překlopit vstupní data.
  • Kliknutí na touch surface funguje jako stisknutí tlačítka A na herním ovladači.
  • Tlačítko Přehrát/Pozastavit funguje jako tlačítko X na herním ovladači.
  • Tlačítko Nabídky by mělo zobrazit upozornění, které uživateli umožní pozastavit nebo obnovit hraní her nebo se vrátit do hlavní nabídky.

Určení vstupu herního adaptéru

Na rozdíl od iOSu, kde události herního kontroleru lze přijímat paralelně s událostmi Touch, zpracovává tvOS všechny události nízké úrovně pro doručování událostí vysoké úrovně UIKit . Pokud tedy potřebujete přístup k událostem herního kontroleru nízké úrovně, budete muset výchozí chování vypnout UIKit.

Když v tvOS chcete zpracovat vstup herního ovladače přímo, musíte použít GCEventViewController (nebo podtřídu) k zobrazení uživatelského rozhraní hry. GCEventViewController Pokaždé, když je první respondér, záznam herního ovladače se zachytí a doručí do vaší aplikace prostřednictvím rozhraní herního kontroleru.

Vlastnost GCEventViewController třídy můžete použít UserInteractionEnabled k přepnutí způsobu zpracování a zpracování událostí.

Informace o implementaci podpory herního adaptéru najdete v části Práce s herními ovladači společnosti Apple v průvodci programováním aplikací pro tvOS a programový program herního adaptéru.

Shrnutí

Tento článek se zabývá novými tlačítky Siri Remote, které se dodává s Apple TV, gesty dotykového zařízení Surface a tlačítky Siri Remote. Dále se zabývá prací s gesty a scénáři, gesty a kódy a událostmi nízké úrovně. A konečně, pokud se jedná o práci s herními ovladači.