日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Studio TV开发教程(二)管理电视控制器

發(fā)布時(shí)間:2024/1/1 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Studio TV开发教程(二)管理电视控制器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Android Studio TV開發(fā)教程

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

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


管理電視控制器

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

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

D-pad最低限度的控制

電視設(shè)備的默認(rèn)控制器是D-pad。?一般來說,您的應(yīng)用程序應(yīng)該可以從僅具有上,下,左,右,選擇,后退和主頁按鈕的遙控器操作。?如果您的應(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)航?。

手柄控制器斷開連接

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

  • 在觀看幾分鐘長的視頻時(shí),D-Pad或游戲控制器進(jìn)入睡眠模式,斷開與電視設(shè)備的連接,然后重新連接。
  • 在游戲過程中,新玩家使用當(dāng)前未連接的游戲控制器加入游戲。
  • 在游戲過程中,玩家離開游戲并斷開游戲控制器。

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

<activityandroid:name="com.example.android.TvActivity"android:label="@string/app_name"android:configChanges="keyboard|keyboardHidden|navigation"android:theme="@style/Theme.Leanback"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LEANBACK_LAUNCHER" /></intent-filter>... </activity>

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

處理D-pad輸入變化

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

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

處理按鈕事件

當(dāng)用戶點(diǎn)擊控制器上的按鈕時(shí),您的應(yīng)用會(huì)收到一個(gè)帶有KeyEvent的事件。?該按鈕的預(yù)期行為可能是媒體事件(如播放,暫停或停止),也可能是電視類型的事件(如選擇或?qū)Ш?#xff09;。?為了提供良好的用戶體驗(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_ENTER
pause()
BUTTON_START,BUTTON_SELECT,BUTTON_A,ENTER,
DPAD_CENTER,KEYCODE_NUMPAD_ENTER
pause()暫停
BUTTON_R1skipToNext()跳到下一個(gè)
BUTTON_L1skipToPrevious()跳到上一個(gè)
DPAD_RIGHT,BUTTON_R2,AXIS_RTRIGGER,AXIS_THROTTLEfastForward()快進(jìn)
DPAD_LEFT,BUTTON_L2,AXIS_LTRIGGER,AXIS_BRAKErewind()倒帶
(沒有KeyEvent與Stop關(guān)聯(lián))stop()停止

處理游戲的控制器

支持D-pad控制

由于此控件集是Android TV設(shè)備的默認(rèn)設(shè)置,因此圍繞方向鍵盤(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說明與玩家溝通對(duì)控制器的任何期望。?如果一個(gè)游戲比一個(gè)只有一個(gè)D-pad的游戲手柄更適合于游戲手柄,請(qǐng)明確說明這一點(diǎn)。?使用不合適的控制器進(jìn)行游戲的玩家很可能會(huì)有次級(jí)體驗(yàn),并在評(píng)分中懲罰您的游戲。
  • 使用一致的按鈕映射?。?直觀靈活的按鈕映射是獲得良好用戶體驗(yàn)的關(guān)鍵。?例如,您應(yīng)該使用A按鈕接受?,并按下B按鈕取消?,以遵守接受的海關(guān)。?您還可以提供可重新映射形式的靈活性。?有關(guān)按鈕映射的更多信息,請(qǐng)參閱處理控制器操作?。
  • 檢測控制器功能并據(jù)此進(jìn)行調(diào)整?。?向控制器查詢其功能以優(yōu)化控制器和游戲之間的匹配。?例如,您可能希望玩家通過在空中揮動(dòng)控制器來引導(dǎo)物體。?如果玩家的控制器缺乏加速計(jì)和陀螺儀硬件,揮手將無法工作。?所以,你的游戲應(yīng)該查詢控制器,如果不支持運(yùn)動(dòng)檢測,切換到另一種可用的控制方案。?有關(guān)查詢控制器功能的更多信息,請(qǐng)參閱Android版本的支持控制器?。

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

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

由于后退按鈕只應(yīng)執(zhí)行線性(向后)導(dǎo)航,因此您可以使用后退按鈕離開游戲內(nè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

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

處理多個(gè)控制器

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

手柄控制器斷開連接

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

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

顯示控制器說明

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

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

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


總結(jié)

以上是生活随笔為你收集整理的Android Studio TV开发教程(二)管理电视控制器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。