Android Studio V3.12環(huán)境下TV開(kāi)發(fā)教程(二)管理電視控制器

Android Studio V3.12環(huán)境下TV開(kāi)發(fā)教程

(轉(zhuǎn)自Android官網(wǎng)https://developer.android.com/training/tv/start)

文章源自:光谷佳武 https://blog.csdn.net/jiawuhan/article/details/80618879

管理電視控制器

電視設(shè)備需要一個(gè)輔助硬件設(shè)備來(lái)與應(yīng)用程序進(jìn)行交互锰蓬,形式為基本的遙控器或游戲控制器五鲫。?這意味著您的應(yīng)用必須支持D-pad輸入试伙。?這也意味著你的應(yīng)用程序可能需要處理離線的控制器纠俭,以及來(lái)自多種類型的控制器的輸入。

本課討論處理電視設(shè)備控制器的要求砰逻。

D-pad最低限度的控制

電視設(shè)備的默認(rèn)控制器是D-pad凰锡。?一般來(lái)說(shuō)哮内,您的應(yīng)用程序應(yīng)該可以從僅具有上,下泽铛,左尚辑,右,選擇盔腔,后退和主頁(yè)按鈕的遙控器操作杠茬。?如果您的應(yīng)用程序是通常需要帶有附加控件的游戲控制器的游戲,則您的應(yīng)用程序應(yīng)嘗試使用這些D-pad控件進(jìn)行游戲弛随。?在這種情況下澈蝙,您的應(yīng)用程序還應(yīng)警告用戶需要控制器,并允許他們使用D-pad控制器優(yōu)雅地退出游戲撵幽。?有關(guān)使用電視設(shè)備的D-pad控制器進(jìn)行導(dǎo)航的更多信息灯荧,請(qǐng)參閱創(chuàng)建電視導(dǎo)航?。

手柄控制器斷開(kāi)連接

電視控制器通常是藍(lán)牙設(shè)備盐杂,它可能會(huì)嘗試通過(guò)定期進(jìn)入睡眠模式和斷開(kāi)電視設(shè)備來(lái)節(jié)省電量逗载。?這意味著如果應(yīng)用程序未配置為處理這些重新連接事件哆窿,則可能會(huì)中斷或重新啟動(dòng)應(yīng)用程序。?這些事件可能發(fā)生在以下任何情況下:

在觀看幾分鐘長(zhǎng)的視頻時(shí)厉斟,D-Pad或游戲控制器進(jìn)入睡眠模式挚躯,斷開(kāi)與電視設(shè)備的連接,然后重新連接擦秽。

在游戲過(guò)程中码荔,新玩家使用當(dāng)前未連接的游戲控制器加入游戲。

在游戲過(guò)程中感挥,玩家離開(kāi)游戲并斷開(kāi)游戲控制器缩搅。

任何可能斷開(kāi)和重新連接事件的TV應(yīng)用程序活動(dòng)都必須配置為處理應(yīng)用程序清單中的重新連接事件。?以下代碼示例演示了如何啟用活動(dòng)來(lái)處理配置更改触幼,包括連接硼瓣,斷開(kāi)連接或重新連接的鍵盤(pán)或?qū)Ш皆O(shè)備:

android:configChanges="keyboard|keyboardHidden|navigation"? android:theme="@style/Theme.Leanback">? ? ? ? ? ? ? ...

此配置更改允許應(yīng)用繼續(xù)通過(guò)重新連接事件運(yùn)行,而不是由Android框架重新啟動(dòng)置谦,這不是一個(gè)好的用戶體驗(yàn)堂鲤。

處理D-pad輸入變化

電視設(shè)備用戶可能有多種類型的控制器,他們使用他們的電視媒峡。?例如瘟栖,用戶可能同時(shí)擁有基本的D-pad控制器和游戲控制器。?游戲控制器在用于D-pad功能時(shí)提供的鍵碼可能與物理D-pad發(fā)送的鍵碼不同谅阿。

你的應(yīng)用程序應(yīng)該處理來(lái)自游戲控制器的D-pad輸入的變化慢宗,所以用戶不必物理地切換控制器來(lái)操作你的應(yīng)用程序。?有關(guān)處理這些輸入變化的更多信息奔穿,請(qǐng)參閱處理控制器操作?镜沽。

處理按鈕事件

當(dāng)用戶點(diǎn)擊控制器上的按鈕時(shí),您的應(yīng)用會(huì)收到一個(gè)帶有KeyEvent的事件贱田。?該按鈕的預(yù)期行為可能是媒體事件(如播放缅茉,暫停或停止)男摧,也可能是電視類型的事件(如選擇或?qū)Ш剑?為了提供良好的用戶體驗(yàn)蔬墩,您的應(yīng)用應(yīng)該為控制器按鈕分配一致的行為。

電視用戶界面事件

生成這些KeyEvent的按鈕應(yīng)該由應(yīng)用根據(jù)下表處理耗拓。

KeyEvent的行為

BUTTON_B拇颅,BACK背部

BUTTON_SELECT,BUTTON_A乔询,ENTER樟插,DPAD_CENTER,KEYCODE_NUMPAD_ENTER選擇

DPAD_UP,DPAD_DOWN黄锤,DPAD_LEFT搪缨,DPAD_RIGHT導(dǎo)航

媒體活動(dòng)

當(dāng)用戶正在觀看媒體時(shí),生成這些KeyEvent的按鈕應(yīng)按照下表處理鸵熟。?如果您的應(yīng)用程序正在控制MediaSession副编,它應(yīng)該調(diào)用其中一個(gè)TransportControls方法,如下所示流强。?請(qǐng)注意痹届,選擇按鈕在這種情況下充當(dāng)播放/暫停按鈕。

KeyEvent的TransportControls調(diào)用行為

BUTTON_SELECT打月,BUTTON_A队腐,ENTER,DPAD_CENTER僵控,

KEYCODE_NUMPAD_ENTERpause()

BUTTON_START香到,BUTTON_SELECT鱼冀,BUTTON_A报破,ENTER,

DPAD_CENTER千绪,KEYCODE_NUMPAD_ENTERpause()暫停

BUTTON_R1skipToNext()跳到下一個(gè)

BUTTON_L1skipToPrevious()跳到上一個(gè)

DPAD_RIGHT充易,BUTTON_R2,AXIS_RTRIGGER荸型,AXIS_THROTTLEfastForward()快進(jìn)

DPAD_LEFT盹靴,BUTTON_L2,AXIS_LTRIGGER瑞妇,AXIS_BRAKErewind()倒帶

(沒(méi)有KeyEvent與Stop關(guān)聯(lián))stop()停止

處理游戲的控制器

支持D-pad控制

由于此控件集是Android TV設(shè)備的默認(rèn)設(shè)置稿静,因此圍繞方向鍵盤(pán)(D-pad)控件規(guī)劃控制方案。?玩家需要能夠在游戲的各個(gè)方面使用D-Pad辕狰,而不僅僅是控制核心游戲玩法改备,還需要導(dǎo)航菜單和廣告。?出于這個(gè)原因蔓倍,您還應(yīng)該確保您的Android TV游戲不涉及觸摸界面悬钳。?例如,Android TV游戲不應(yīng)該告訴玩家“?點(diǎn)擊此處繼續(xù)”偶翅。

如何塑造播放器與控制器的交互可能是實(shí)現(xiàn)卓越用戶體驗(yàn)的關(guān)鍵:

預(yù)先溝通控制器要求?默勾。?使用您的Google Play說(shuō)明與玩家溝通對(duì)控制器的任何期望。?如果一個(gè)游戲比一個(gè)只有一個(gè)D-pad的游戲手柄更適合于游戲手柄聚谁,請(qǐng)明確說(shuō)明這一點(diǎn)母剥。?使用不合適的控制器進(jìn)行游戲的玩家很可能會(huì)有次級(jí)體驗(yàn),并在評(píng)分中懲罰您的游戲。

使用一致的按鈕映射?媳搪。?直觀靈活的按鈕映射是獲得良好用戶體驗(yàn)的關(guān)鍵铭段。?例如,您應(yīng)該使用A按鈕接受?秦爆,并按下B按鈕取消?序愚,以遵守接受的海關(guān)。?您還可以提供可重新映射形式的靈活性等限。?有關(guān)按鈕映射的更多信息爸吮,請(qǐng)參閱處理控制器操作?。

檢測(cè)控制器功能并據(jù)此進(jìn)行調(diào)整?望门。?向控制器查詢其功能以優(yōu)化控制器和游戲之間的匹配形娇。?例如,您可能希望玩家通過(guò)在空中揮動(dòng)控制器來(lái)引導(dǎo)物體筹误。?如果玩家的控制器缺乏加速計(jì)和陀螺儀硬件桐早,揮手將無(wú)法工作。?所以厨剪,你的游戲應(yīng)該查詢控制器哄酝,如果不支持運(yùn)動(dòng)檢測(cè),切換到另一種可用的控制方案祷膳。?有關(guān)查詢控制器功能的更多信息陶衅,請(qǐng)參閱Android版本的支持控制器?。

提供適當(dāng)?shù)暮笸税粹o行為

后退按鈕不應(yīng)該充當(dāng)切換直晨。?例如搀军,不要用它來(lái)打開(kāi)和關(guān)閉菜單。?它應(yīng)該僅通過(guò)前一個(gè)屏幕(例如:游戲玩法>游戲暫停屏幕>游戲主屏幕> Android主屏幕)向后導(dǎo)航勇皇,即面包屑式罩句。

由于后退按鈕只應(yīng)執(zhí)行線性(向后)導(dǎo)航,因此您可以使用后退按鈕離開(kāi)游戲內(nèi)菜單(由不同的按鈕打開(kāi))并返回游戲狀態(tài)敛摘。?有關(guān)導(dǎo)航設(shè)計(jì)的更多信息门烂,請(qǐng)參閱導(dǎo)航?。?要了解實(shí)施情況着撩,請(qǐng)參閱提供適當(dāng)?shù)暮笸藢?dǎo)航?诅福。

使用適當(dāng)?shù)陌粹o

并非所有游戲控制器都提供開(kāi)始,搜索或菜單按鈕拖叙。?確保你的用戶界面不依賴于這些按鈕的使用氓润。

處理多個(gè)控制器

當(dāng)多個(gè)玩家正在玩一個(gè)游戲時(shí),每個(gè)玩家都有自己的控制器薯鳍,因此映射每個(gè)玩家 - 控制器對(duì)非常重要咖气。?有關(guān)如何實(shí)現(xiàn)控制器編號(hào)標(biāo)識(shí)的信息挨措,請(qǐng)參閱getControllerNumber()?。

手柄控制器斷開(kāi)連接

當(dāng)游戲過(guò)程中控制器斷開(kāi)連接時(shí)崩溪,游戲應(yīng)該暫停浅役,并且會(huì)出現(xiàn)一個(gè)對(duì)話框,提示斷開(kāi)的玩家重新連接他或她的控制器伶唯。

該對(duì)話框還應(yīng)提供故障排除提示(例如觉既,彈出對(duì)話框告訴玩家“檢查您的藍(lán)牙連接”)。?有關(guān)實(shí)現(xiàn)輸入設(shè)備支持的更多信息乳幸,請(qǐng)參閱處理控制器操作?瞪讼。?有關(guān)藍(lán)牙連接的特定信息位于藍(lán)牙?。

顯示控制器說(shuō)明

如果您的游戲提供視覺(jué)游戲控制指令粹断,則控制器圖像應(yīng)該沒(méi)有品牌符欠,并且只包含與Android兼容的按鈕?。

有關(guān)Android兼容控制器的示例圖像瓶埋,請(qǐng)下載Android TV游戲板模板(ZIP)?希柿。?它包括黑色背景上的白色控制器和白色背景上的黑色控制器(如圖1所示),作為PNG文件和Adobe?Illustrator?文件养筒。

圖1.使用Android TV游戲板模板(ZIP)的示例控制器說(shuō)明曾撤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市闽颇,隨后出現(xiàn)的幾起案子盾戴,更是在濱河造成了極大的恐慌寄锐,老刑警劉巖兵多,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異橄仆,居然都是意外死亡剩膘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)盆顾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)怠褐,“玉大人,你說(shuō)我怎么就攤上這事您宪∧卫粒” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵宪巨,是天一觀的道長(zhǎng)磷杏。 經(jīng)常有香客問(wèn)我,道長(zhǎng)捏卓,這世上最難降的妖魔是什么极祸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上遥金,老公的妹妹穿的比我還像新娘浴捆。我一直安慰自己,他們只是感情好稿械,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布选泻。 她就那樣靜靜地躺著,像睡著了一般美莫。 火紅的嫁衣襯著肌膚如雪滔金。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天茂嗓,我揣著相機(jī)與錄音餐茵,去河邊找鬼。 笑死述吸,一個(gè)胖子當(dāng)著我的面吹牛忿族,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蝌矛,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼道批,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了入撒?” 一聲冷哼從身側(cè)響起隆豹,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茅逮,沒(méi)想到半個(gè)月后璃赡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡献雅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年碉考,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挺身。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侯谁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出章钾,到底是詐尸還是另有隱情墙贱,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布贱傀,位于F島的核電站惨撇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏窍箍。R本人自食惡果不足惜串纺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一丽旅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纺棺,春花似錦榄笙、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至巨朦,卻和暖如春米丘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背糊啡。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工拄查, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人棚蓄。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓堕扶,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親梭依。 傳聞我的和親對(duì)象是個(gè)殘疾皇子稍算,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容