版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MojingSDK for Android開發(fā)說明文檔北京暴風(fēng)魔鏡科技2022-02版本Versi on日期Data作者Author注釋Comme nts1、支付相關(guān)接口增加錯(cuò)誤詳情回調(diào)void mjFailedDetail1.32022-06-21劉滿松sCallback(Stri ngjson)2、支付確認(rèn)頁面增加取消按鈕的回調(diào)法律聲明本文檔包含的所有內(nèi)容除特別聲明以外, 版權(quán)均屬于北京暴風(fēng)魔鏡科技有限公司所有。未經(jīng)本公司書面許可,任何單位和個(gè)人不得以任何方式電子機(jī)械,包括影印翻印或轉(zhuǎn)載本文檔的任何局部,否那么將視為侵權(quán),追究法律責(zé)任。目錄目錄 4一 . SDK 發(fā)布說明 61 SDK發(fā)布
2、包的文件格式 62 SDK的命名標(biāo)準(zhǔn)6二. SDK 的使用說明和接口說明 71在工程中使用 SDK以Eclipse為例72在代碼中使用 SDK 72.1 初始化 SDK 82.2 使用頭部跟蹤系統(tǒng) 82.2.1 檢查當(dāng)前 設(shè)備的傳感器信息 82.2.2 頭部跟蹤復(fù)位 82.2.3 復(fù)位 YAW 旋轉(zhuǎn)角 92.2.4 開始校準(zhǔn)頭部跟蹤偏置值 92.2.5 獲取頭部跟蹤偏置值是否已經(jīng)校準(zhǔn) 92.2.6 獲取當(dāng)前視角,以矩陣形式表示 92.2.7 獲取當(dāng)前視角,以歐拉角表示 92.2.8 獲取當(dāng)前視角,以四元數(shù)表示 102.3 使用反畸變 102.3.1 選擇 VR 眼鏡和鏡片 102.3.2 開啟
3、關(guān)閉 TimeWarp 102.3.3 開啟關(guān)閉多線程反畸變 1 12.3.4 設(shè)置 Renderer 1 12.3.5 設(shè)置 Message Handler 1 12.3.6 MojingSurfaceView 的使用方法 122.3.7 獲取推薦視場(chǎng)角FOV 122.3.8 獲取繪制紋理 132.3.9 繪制畸變圖像 132.3.10 繪制畸變圖像并且疊加一個(gè)額外的圖層 142.3.11 指定疊加圖層的位置 142.3.12 更改繪制圖像的垂直位置 內(nèi)測(cè)功能 152.3.13 在屏幕中央位置繪制輔助線 152.3.14 設(shè)置默認(rèn)魔鏡世界 152.3.15 獲取默認(rèn)魔鏡世界對(duì)應(yīng)信息 162.
4、3.16 獲取最后一次切換的魔鏡世界對(duì)應(yīng)信息 1724獲取SDK支持的廠商-產(chǎn)品-眼鏡的信息 172.4.1 獲取 SDK 支持的廠家列表 172.4.2 獲取 SDK 支持的特定廠商的產(chǎn)品列表 182.4.3 獲取 SDK 支持的產(chǎn)品鏡片列表 182.4.4 獲取 Key 的完整描述信息 192.4.5 拼接兩個(gè) Key 202.4.6 發(fā)生錯(cuò)誤時(shí)返回的描述信息 202.5使用藍(lán)牙手柄 212.5.1 連接手柄 212.5.2 斷開手柄 212.5.3 配置手柄使用方式 222.5.4 使能特定的藍(lán)牙手柄 222.5.5 關(guān)于配置文件 222.5.6 多個(gè) Activity 共用一個(gè) Moj
5、ingInputManager 222.5.7 手柄正常工作需要額外更改的代碼 222.5.8 響應(yīng)手柄操作 232.6 獲取 SDK 的信息 242.6.1 獲取 SDK 版本信息 242.6.2 獲取 SDK 是否已經(jīng)調(diào)用 Init 函數(shù) 242.6.3 獲取是否已經(jīng)啟用了頭部跟蹤 242.6.4 獲取是否已經(jīng)進(jìn)入了魔鏡世界 252.6.5 獲取進(jìn)入魔鏡世界時(shí)指定的畸變算法適配的眼鏡型號(hào) 252.7 參加信息統(tǒng)計(jì)報(bào)數(shù)功能 252.7.1 首次報(bào)活、使用時(shí)長(zhǎng)等信息統(tǒng)計(jì) 252.7.2 頁面統(tǒng)計(jì) 262.7.3 事件統(tǒng)計(jì) 272.7.4 錯(cuò)誤信息上報(bào) 272.7.5 報(bào)數(shù)時(shí)機(jī)設(shè)置 282.7.
6、6 集中上報(bào)間隔時(shí)間設(shè)置 282.8 使用用戶自定義參數(shù)功能 282.8.1 設(shè)置用戶自定參數(shù) 282.8.2 獲取當(dāng)前用戶自定義參數(shù) 282.8.3 用戶自定義參數(shù)的字段和說明 292.9 注冊(cè)、登錄、消費(fèi)接口 292.9.1 業(yè)務(wù)術(shù)語 292.9.2 接口說明 312.9.3 返回碼 37三.附錄 391使用SDK時(shí)需要的權(quán)限 391.1 存儲(chǔ)設(shè)備 IO 的權(quán)限 391.2 網(wǎng)絡(luò)訪問權(quán)限 391.3 藍(lán)牙手柄相關(guān)權(quán)限 391.4 使用報(bào)活相關(guān)權(quán)限 391.5 SDK 當(dāng)前正在使用的手柄配置文件 391.6 手柄配置文件詳細(xì)說明 39MojingSDK For Android (下文簡(jiǎn)稱 S
7、DK )是為了配合 Android 軟件開發(fā)者開發(fā)適用于 暴風(fēng)魔鏡 (R) 產(chǎn)品而推出的 SDK(Software Development Kit) 開發(fā)包。開發(fā)包主要從 頭部跟 蹤、傳感器數(shù)據(jù)獲取和靜態(tài)偏置糾偏,官方和第三方藍(lán)牙手柄接入,以及圖像抗鏡片畸變、 抗色散等方面為開發(fā)者提供便利性支持。SDK 發(fā)布說明1 SDK發(fā)布包的文件格式SDK 采用標(biāo)準(zhǔn) ZIP 壓縮文檔格式發(fā)布,壓縮文檔中目前目錄組織形式如下列圖:目錄說明:1. Doc :Doc 目錄存放的是 MojingSDK 的說明文檔。2. InputMapManager :該目錄存放的是 MojingSDK 手柄配置文件轉(zhuǎn)換工具和
8、Demo 配 置文件。3. libs :該目錄下存放的是 MojingSDK 的二進(jìn)制文件意義如下MojingSDK.jar 對(duì) SDK 接口封裝后的 JAR 包,其中包括了 SDK 運(yùn)行所需 要的配置文件。libmojing.so提供 SDK 功能的動(dòng)態(tài)庫。ZC*.jar提供藍(lán)牙手柄接入功能的 JAR 包。2 SDK的命名標(biāo)準(zhǔn)SDK 發(fā)布包的文件命名為“ MojingSDK_For_Android V A.B.CCC (D) 。其中各個(gè)局部 的含義如下:MojingSDK_For_Android表示是 MojingSDK For Android 。V A.B.CCC 表示 SDK 的版本。
9、A 為主版本號(hào), B 為次版本號(hào), CCC 根據(jù) SDK 修改的次數(shù)在每次發(fā)布時(shí)單調(diào)遞增。( D )表示發(fā)布的性質(zhì),目前 (R) 表示正式發(fā)布版, (D) 表示調(diào)式版,只根據(jù)需要發(fā)布給 特定開發(fā)人員。其他取值表示特殊訂制版,只根據(jù)需要發(fā)布給特定開發(fā)人員。SDK的使用說明和接口說明1在工程中使用 SDK以 Eclipse 為例)將SDK發(fā)布包解壓縮后,將libs目錄拷貝到工程的libs目錄下,并設(shè)置編譯路徑包含SDK中所有的JAR包。r> 5 gen Generated Java FileJ>.AndroidL'1'日晞*> 占 bi n* 卩 libsL ?
10、drmeabl-v7a區(qū) libiriqjing,sod jtB6區(qū) libmojingrso軸 MoJingSDK.jarpl ZG-&trings-l,9,2jaTI亠 i p| ZControllertib-andrcid-ui-lJari 2Contro I lerLib- 匚 PgjothBi Libra ries中 Qrdr and ExportJAR5 and class folders cn the build pati-» iff-1 ir m imttiii it-i rr ii mm rs :、iiai« WoJingSDK-jar - Moj
11、ingSDKDemo/libs j2在代碼中使用SDK根據(jù)最新的魔鏡 SDK授權(quán)規(guī)那么,開發(fā)者使用SDK前需注冊(cè)魔鏡開發(fā)者賬戶,申請(qǐng)使用權(quán)限,即取得與程序包名 對(duì)應(yīng)的商戶 名稱(EVELOPER_MERCHANT_ID )、應(yīng)用ID (DEVELOPER_APP_ID )、應(yīng)用 Key( DEVELOPER_APP_KEY ),如這些信息組合能通過 魔鏡開發(fā)者用戶中心驗(yàn)證,那么可以正常使用SDK,否那么會(huì)限制使用。開發(fā)者賬戶注冊(cè)及管理地址: :/ope n. moji ng /開發(fā)者需要在工程的An droidMa nifest.xml中參加相關(guān)信息的配置,即參加名稱分別為DEVELOPER_
12、MERCHANT_ID 、DEVELOPER_APP_ID、DEVELOPER_APP_KEY 的 mete-data 字段,字段值為授權(quán)申請(qǐng)時(shí)根據(jù)包名生成的對(duì)應(yīng)值,同時(shí)參加渠道ID( APP分發(fā)渠道的名稱)字段 DEVELOPER_CHANNEL_ID ,例如如下:CIMZE& data aadraid:nD2Ee-*DEVZL0.P£RaMEEiCHA>a_I.Dl? axoidiTailueCSe3432 63889043* />吐工enl口:口aztE=D迂PT3F£;i “g ID"1 a.dr2iii3val-ie=!,p.pS,0
13、615,6figgpO5,r, /><nwze-dfitE android :nEM-w-DzVKIjDPEa_auPP_KEY" indr口 i 日:百匕/> Cm±-a d&tii an ±r Did: nae*" L'i VEWPL j-._CHAllftEL_lE " in-razQ: value * *ww .uza j 1XLQ- cn" /></applicACicn>注意:1.字段值不要超過100個(gè)字符;2.假設(shè)有字段值為純數(shù)字,需要在該字段開頭參加0',如應(yīng)
14、用ID定義為16位數(shù)值,DEVELOPER_APP_ID 的字段值前參加了 0 '做辨識(shí)。魔鏡SDK的JAR包圭寸裝類的名字空間路徑為:。2.1初始化SDKSDK中提供了一個(gè)繼承于標(biāo)準(zhǔn) Activity類的MojingVrActivity 類,這個(gè)類中實(shí)現(xiàn)了 SDK 的初始化、關(guān)閉、開啟頭部跟蹤等功能。所以在開發(fā)時(shí)只需要將應(yīng)用的Activity類繼承于MojingVrActivity 就可以獲得SDK中的這局部功能,例如如下:public class Moji ngActivity exte nds Moji ngVrActivity當(dāng)Moji ngVrActivity 的on Cre
15、ate函數(shù)執(zhí)行完以后,就完成了SDK初始化的功能。2.2使用頭部跟蹤系統(tǒng)檢查當(dāng)前 設(shè)備的傳感器信息int CheckSe nsors()函數(shù)功能:檢查傳感器狀態(tài)。輸入?yún)?shù):無。返回值:0表示成功,其他值表示異常,具體內(nèi)容如下值的安位與。返回值定義說明0SENSOR ERROR NOERROR沒有檢查到異常1SENSOR_ERROR_NoMag沒有地磁傳感器4SENSOR ERROR NoGryo沒有陀螺儀8SENSOR ERROR GryoTooSlow陀螺儀采樣頻率過低16SENSOR ERROR NoAccel沒有加速度傳感器32SENSOR ERROR AccelTooSI()v加速度傳
16、感器采樣頻率過低頭部跟蹤復(fù)位void ResetTracker()函數(shù)功能:頭部跟蹤復(fù)位。輸入?yún)?shù):無。223復(fù)位YAW旋轉(zhuǎn)角void ResetSensorOrientation()函數(shù)功能:輸入?yún)?shù):YAW 旋轉(zhuǎn)角度復(fù)位 ,即歐拉角中的橫搖角。 無。返回值:無。2.2.4 開始校準(zhǔn)頭部跟蹤偏置值boolean StartTrackerCalibration();函數(shù)功能:輸入?yún)?shù):強(qiáng)制校準(zhǔn)頭部跟蹤偏置值。無。返回值:注意:成功去除偏置值校準(zhǔn)狀態(tài)返回True,否那么返回False。無論是否調(diào)用此函數(shù),在 StartTracker 之后都會(huì)自動(dòng)進(jìn)入校準(zhǔn)狀態(tài)。2.2.5 獲取頭部跟蹤偏置值是否已
17、經(jīng)校準(zhǔn)float IsTrackerCalibrated();函數(shù)功能:輸入?yún)?shù):獲取頭部跟蹤偏置值是否已經(jīng)校準(zhǔn)或校準(zhǔn)進(jìn)度。 無。返回值:已經(jīng)校準(zhǔn)過返回 1,否那么返回小于 1 的浮點(diǎn)數(shù)表示進(jìn)度百分比。 當(dāng)傳感器校準(zhǔn)過程中出現(xiàn)較大的數(shù)據(jù)誤差時(shí),會(huì)自動(dòng)重置校準(zhǔn)過程。2.2.6 獲取當(dāng)前視角,以矩陣形式表示void getLastHeadView(float headView)函數(shù)功能:輸入?yún)?shù):獲取當(dāng)前視角,以矩陣形式表示。headView 浮點(diǎn)型數(shù)組,長(zhǎng)度必須是 16。返回值:返回的視角信息存放于 headView 數(shù)組中。2.2.7 獲取當(dāng)前視角,以歐拉角表示void getLastHead
18、EulerAngles(float headEulerAngles);2022-2022 ?北京暴風(fēng)魔鏡技術(shù) 9 / 49函數(shù)功能:獲取當(dāng)前視角,以歐拉角形式表示。輸入?yún)?shù):headEulerAngles浮點(diǎn)型數(shù)組,長(zhǎng)度必須是3。返回值:返回的視角信息存放于headEulerAngles數(shù)組中。其中,headEulerA nglesO = yaw;headEulerA ngles1 = pitch;headEulerA ngles2 = roll;獲取當(dāng)前視角,以四元數(shù)表示void getLastHeadQuarter nion( float jU nitQuarter nion)函數(shù)功能:獲
19、取當(dāng)前視角,以四元數(shù)形式表示。輸入?yún)?shù):jUnitQuarternion浮點(diǎn)型數(shù)組,長(zhǎng)度必須是4。返回值:返回的視角信息存放于 jUnitQuarternion數(shù)組中。其中,jUn itQuarter nion0 = w; jUn itQuarter nion1 = x; jUn itQuarter nion2 = y; jUn itQuarter nion3 = z;2.3使用反畸變反畸變是為了適用于對(duì)抗鏡片畸變、色散而必須在顯示圖像中做特殊的圖形處理和顏色 處理的過程。Moji ngVrActivity類中提供了 MojingSurfaceView類來處理3D繪制和畸變相關(guān)功能,可以通過
20、MojingVrActivity的方法 getSurfaceView來獲取 MojingSurfaceView的實(shí)例,然后通過該實(shí)例調(diào)用Moji ngSurfaceView類中的方法來實(shí)現(xiàn) 3D和畸變控制。選擇VR眼鏡和鏡片public void setGlassesKey(StringglassesKey )函數(shù)功能:設(shè)置VR眼鏡和鏡片。輸入?yún)?shù):GlassesName指定畸變需要適配的眼鏡和鏡片型號(hào),參見附錄返回值:無。2.3.2 開啟關(guān)閉 TimeWarppublic void setTimeWarp( boolean timeWarp ) 函數(shù)功能:?jiǎn)?dòng)或者關(guān)閉TimeWarp功能。2
21、022-2022 ?北京暴風(fēng)魔鏡技術(shù)輸入?yún)?shù):timeWarp為ture表示開啟,false表示關(guān)閉,默認(rèn)關(guān)閉。返回值:無。說明: 此方法應(yīng)當(dāng)在 Activity的On Create方法中調(diào)用,否那么可能不能生效。不調(diào)用 該方法時(shí),默認(rèn)值是 false,不啟用Time Warp。 啟用Time Warp可以減少系統(tǒng)總延時(shí),但是對(duì)于陀螺儀不好的 ,可能反而加大顯示畫面的不穩(wěn)定性,建議根據(jù) 型號(hào)決定是否翻開此功能。233開啟關(guān)閉多線程反畸變public voidsetMultiThread ( boolean multiThread)函數(shù)功能:?jiǎn)?dòng)或者關(guān)閉多線程反畸變功能。輸入?yún)?shù):multiTh
22、read 為 ture 表示開啟,false表示關(guān)閉,默認(rèn)關(guān)閉返回值:無。說明: 此方法應(yīng)當(dāng)在 Activity的On Create方法中調(diào)用,否那么可能不能生效。不調(diào)用增加顯示幀率(對(duì)渲染幀率無提高甚 可能反而加大顯示畫面的不穩(wěn)定性,該方法時(shí),默認(rèn)值是 false,不啟用多線程反畸變。 啟用多線程反畸變可以減少系統(tǒng)總延時(shí), 至有降低的副作用),但是對(duì)于陀螺儀不好的 , 建議根據(jù) 型號(hào)決定是否翻開此功能。2.3.4 設(shè)置 Rendererpublic void setRe nderer(Re nderer ren derer) 函數(shù)功能:設(shè)置render用于OpenGL繪圖。輸入?yún)?shù):繼承于
23、GLSurfaceView.Renderer 的 render 。返回值:無。2.3.5 設(shè)置 Message Handlerpublic void setMessageHa ndler(Ha ndler han dler) 函數(shù)功能: 設(shè)置Handler,用于接收消息,目前消息只有ON_CHANGE_MOJING_WQRLD輸入?yún)?shù):handler是用于接收消息的 Handler。返回值:無。11/492022-2022北京暴風(fēng)魔鏡技術(shù)236 MojingSufaceView的使用方法聲 明 一 個(gè) Activity 繼 承 于 MojingVrActivity , 然 后 在 重 載 的
24、onCreate 對(duì) MojingSurfaceView 進(jìn)行設(shè)置,典型調(diào)用如下:Overrideprotected void onCreate(Bundle icicle) / 調(diào)用父類 onCreate ,完成環(huán)境創(chuàng)立。super.onCreate(icicle);/ 獲得父類創(chuàng)立的 MojingSurfaceViewmView = super.getSurfaceView();/ 創(chuàng)立消息接收 Handler ,用于接收 MojingSurfaceView 的消息。 mGLMsgHandler = new GLMsgHandler(this);/ 將消息 Handler 設(shè)置給 Moji
25、ngSurfaceView ,用于將來消息的觸發(fā)。 mView.setMessageHandler(mGLMsgHandler);/ 開啟 TimeWarp 功能mView.setTimeWarp(true);/ 開啟多線程mView.setMultiThread(true);/ 創(chuàng)立 Rendererrenderer=new VrRender(this);/ 將 Render 設(shè)置給 MojingSurfaceView 。 mView.setRenderer(renderer); mView.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSL
26、Y);/ 設(shè)置當(dāng)前 Activity 的 View 。 setContentView(mView);/ 啟用畸變。 mView.setGlassesKey(Mojing3Key);下面所介紹的是 SDK 中的與畸變相關(guān)的靜態(tài)方法,這些方法通常都在 Renderer 中使用。2.3.7 獲取推薦視場(chǎng)角 (FOV)float GetMojingWorldFOV()函數(shù)功能: 獲取推薦的視場(chǎng)角,以角度為單位。輸入?yún)?shù): 無。返回值: 以角度為單位的視場(chǎng)角大小。2.3.8 獲取繪制紋理EyeTextureParameter GetEyeTextureParameter(int eyeTextureTy
27、pe) 函數(shù)功能: SDK 根據(jù)當(dāng)前的眼鏡型號(hào)、畸變參數(shù)、和 屏幕尺寸,生成一副紋理。 輸入?yún)?shù):eyeTextureType,表示請(qǐng)求的紋理類型。它的值可以是:1 請(qǐng)求的紋理用于繪制左眼圖像;2 請(qǐng)求的紋理用于繪制右眼圖像;3 請(qǐng)求的紋理用于繪制雙眼圖像;返回值: EyeTextureParameter 對(duì)象,描述產(chǎn)生的紋理細(xì)節(jié)信息。主要數(shù)據(jù)成員的 定義如下:m_EyeTexID: SDK 分配的紋理 ID 。 0表示分配失敗。m_EyeTexType :同 eyeTextureType 參數(shù)。m_Width : 紋理的寬度m_Height : 紋理的高度 m_Format: 紋理的顏色格式
28、注意:通過此函數(shù)得到 Texture 句柄以后,應(yīng)該根據(jù)紋理的類型繪制對(duì)應(yīng)的圖像內(nèi)容,圖像內(nèi)容應(yīng)該充滿整個(gè)紋理。推薦分別獲取單眼的紋理并分別繪制圖像后交由繪制畸變圖像方法繪制。 使用自行創(chuàng)立的紋理繪制并繪制圖像后交由反畸變系統(tǒng)繪制的方法依 然被 SDK 支持,但是不推薦使用。2.3.9 繪制畸變圖像boolean DrawTexture(int LeftTexID, int RightTexID)函數(shù)功能:將指定的紋理圖像繪制于調(diào)用此函數(shù)時(shí)的活動(dòng)Surface上。輸入?yún)?shù): LeftTexID 指定繪制于左眼的紋理。 傳入 0 值或非法紋理時(shí)將繪制網(wǎng)格紋 理。RightTexID 指定繪制于右
29、眼的紋理。 傳入與 LeftTextID 相同的值的時(shí)候, 將把紋理的左半局部繪制于左眼, 右半局部繪制于右眼。 傳入 0 值或非法 紋理值得時(shí)候, 如果左眼紋理有效那么將左眼紋理繪制于右眼, 否那么繪制網(wǎng) 格紋理。返回值:True 表示執(zhí)行成功, False 表示執(zhí)行失敗, 被迫繪制了不預(yù)期的網(wǎng)格紋理。注意:繪制圖像方案真值表萬案LeftTexIDRightTexID左眼圖像右眼圖像00或者非法紋理0或者非法紋理網(wǎng)格網(wǎng)格10或者非法紋理RightTexID網(wǎng)格網(wǎng)格2LeftTexID0或者非法紋理LeftTexIDLeftTexID3LeftTexIDLeftTexIDLeftTexID 左
30、LeftTexID 右4LeftTexIDRightTexIDLeftTexIDRightTexID制方案2、4建議輸入的紋理是矩形紋理,且周圍有1Pix的黑邊。繪制方案3建議輸入的紋理長(zhǎng)寬比2:1,且每左半幅、右半幅各有1Pix的黑邊。不推薦使用此方案。如果傳入的紋理來自 SDK繪制畸變圖像并且疊加一個(gè)額外的圖層boolean DrawTextureWithOverlay(int LeftTexID, int RightTexID, int LeftOverlaylD, int RightOverlaylD)函數(shù)功能:將指定的紋理圖像繪制于調(diào)用此函數(shù)時(shí)的活動(dòng)Surface上。疊加的圖層將以A
31、lpha通道混合的方式分別疊加在LeftTex和RightTex之上,并適配當(dāng)前用戶使用的畸變,但不受運(yùn)動(dòng)預(yù)測(cè)的影響。輸入?yún)?shù):LeftTexID指定繪制于左眼的紋理。傳入0值或非法紋理時(shí)將繪制網(wǎng)格紋理。RightTexID指定繪制于右眼的紋理。傳入與LeftTextID相同的值的時(shí)候,將把紋理的左半局部繪制于左眼,右半局部繪制于右眼。傳入0值或非法紋理值得時(shí)候,如果左眼紋理有效那么將左眼紋理繪制于右眼,否那么繪制網(wǎng)格紋理。LeftOverlayID 指定疊加在眼部紋理之上的一個(gè)獨(dú)立圖層,將被疊加在左 眼。RightOverlayID指定疊加在眼部紋理之上的一個(gè)獨(dú)立圖層,將被疊加在右眼。0值的
32、是候?qū)⑹褂门c左眼相同的紋理。返回值: True表示執(zhí)行成功,F(xiàn)alse表示執(zhí)行失敗,被迫繪制了不預(yù)期的網(wǎng)格紋理。指定疊加圖層的位置void SetLayerPositio n( float fLeft, float fTop, float fWidth, float fHeight)函數(shù)功能:設(shè)置疊加圖層在單眼顯示范圍中的位置。其中,單眼視圖的顯示范圍以左上角為(0,0)點(diǎn),右下角為(1,1)點(diǎn)。輸入?yún)?shù): fLeft指定疊加圖層在x方向0,1區(qū)間的左邊界;fTop指定疊加圖層在y方向0,1區(qū)間的上邊界;fWidth指定疊加圖層在 x方向0,1區(qū)間的寬度;fHeight指定疊加圖層在 y方向0
33、,1區(qū)間的高度; JH卜Top Top/F丸9圖2"Width(0.0,0.0)圖 2-3-11返回值:如圖2-3.11所示。無。(1.0, 1.0)更改繪制圖像的垂直位置(內(nèi)測(cè)功能)void SetlmageYOffset(float fYOffset)函數(shù)功能:更改繪制圖像在屏幕上的位置;輸入?yún)?shù):fYOffset垂直方向的偏移位置,以圖像半幅高度為 1,在垂直正方向的增益值;返回值:無。注意:此函數(shù)可以在OpenGL線程之外調(diào)用;新的繪制效果將在下一次調(diào)用DrawTexture函數(shù)時(shí)生效。在屏幕中央位置繪制輔助線Void SetCenterLine(int iWidth, in
34、t colR, int colG , int colB, int colA)函數(shù)功能:輸入?yún)?shù):在屏幕中央位置繪制一條線幫助用戶疋位中心位置;iWidth線的寬度,取值范圍010,推薦值4。當(dāng)此參數(shù)值為0時(shí)不繪制。colR、colG、colB、colA 指定線條的顏色和 Aplha通道。返回值:注意:無。此函數(shù)必須與 EnterMojingWorld在同一 OpenGL線程中調(diào)用??旖萦梅?SetCenterLine(iWidth),此時(shí)將繪制一條白線。設(shè)置默認(rèn)魔鏡世界boolean SetDefaultMoji ngWorld(Stri ng strGlassesName)函數(shù)功能: 輸入?yún)?/p>
35、數(shù): 密鑰。返回值:設(shè)置默認(rèn)的魔鏡世界,以便其他應(yīng)用或模組獲取并使用;strGlassesName魔鏡世界Key,APPID-廠商-產(chǎn)品-鏡片組合而成的字符串True表示設(shè)置成功,F(xiàn)alse表示設(shè)置失敗。2315獲取默認(rèn)魔鏡世界對(duì)應(yīng)信息Stri ng GetDefaultMoji ngWorld(Stri ng strLa nguageCodeBylSO639 )函數(shù)功能:獲取默認(rèn)的魔鏡世界的對(duì)應(yīng)信息;輸入?yún)?shù):strLanguageCodeBylSO639輸入?yún)?shù)語言碼參考ISO 639-1,使用兩位不區(qū)分大小寫的字符。如果對(duì)應(yīng)的條目沒有設(shè)定指定的語言碼的顯示內(nèi)容,那么返回的節(jié)點(diǎn)中不會(huì)有 D
36、isplay節(jié)點(diǎn)。返回值:返回JSON字符串:失敗時(shí),內(nèi)容如下:"ERROR":"Get default Moji ngWorld failed."成功那么,類似內(nèi)容如下:"ClassName":"GlassI nfo","ReleaseDate":"20221028","Ma nufacturer":"Display":"廠家的名字,沒有設(shè)定那么不存在此節(jié)點(diǎn)","ID":不會(huì)改變的唯一標(biāo)識(shí),&q
37、uot;URL":"URL OF Manufacturer Image , Size = 256 x256", "KEY":"用于后續(xù)操作的動(dòng)態(tài)字符串密鑰,代表此廠商-產(chǎn)品-鏡片組合。這個(gè) Key可以直接用于EnterMojingWorld","Product":"Display":"產(chǎn)品的名字,沒有設(shè)定那么不存在此節(jié)點(diǎn)","ID":不會(huì)改變的唯一標(biāo)識(shí),"URL":"URL OF Product Image , Si
38、ze = 256 x256", "KEY":"用于后續(xù)操作的動(dòng)態(tài)字符串密鑰,代表此廠商-產(chǎn)品-鏡片組合。這個(gè) Key可以直接用于EnterMojingWorld","Glass":"Display":"鏡片的名字,沒有設(shè)定那么不存在此節(jié)點(diǎn)","ID":不會(huì)改變的唯一標(biāo)識(shí),"URL":"URL OF Glass Image , Size = 256 x256", "KEY":"用于后續(xù)操作的動(dòng)態(tài)字符
39、串密鑰,代表此廠商-產(chǎn)品-鏡片組合。這個(gè) Key可以直接用于EnterMojingWorld"2316獲取最后一次切換的魔鏡世界對(duì)應(yīng)信息Stri ng GetLastMoji ngWorld(Stri ng strLa nguageCodeBylSO639 )函數(shù)功能:獲取最后一次切換的魔鏡世界的對(duì)應(yīng)信息;輸入?yún)?shù):strLanguageCodeBylSO639輸入?yún)?shù)語言碼參考 ISO 639-1,使用兩位不區(qū)分大小寫的字符。如果對(duì)應(yīng)的條目沒有設(shè)定指定的語言碼的顯示內(nèi)容,那么返回的節(jié)點(diǎn)中不會(huì)有 Display節(jié)點(diǎn)。返回值:返回JSON字符串:失敗時(shí),內(nèi)容如下:"ERROR
40、":"Get last Moji ngWorld failed."成功時(shí)返回內(nèi)容格式同GetDefaultMoji ngWorld()。2.4獲取SDK支持的廠商-產(chǎn)品-眼鏡的信息目前SDK內(nèi)置了一些廠商的產(chǎn)品和鏡片的支持。 以下函數(shù)將用來枚舉 SDK所支持 的所有廠商-產(chǎn)品-鏡片,并且獲得調(diào)用EnterMojingWorld的Key畸變信息。枚舉出來的 信息可能根據(jù)運(yùn)行平臺(tái)和廠商的限制會(huì)有不同。獲取SDK支持的廠家列表Stri ng GetMa nu facturerList(Stri ng strLa nguageCodeBylSO639 )函數(shù)功能: 獲取S
41、DK支持的廠家列表;輸入?yún)?shù):strLanguageCodeBylSO639輸入?yún)?shù)語言碼參考ISO 639-1,使用兩位不區(qū)分大小寫的字符。如果對(duì)應(yīng)的條目沒有設(shè)定指定的語言碼的顯示內(nèi)容, 那么返回的節(jié)點(diǎn)中不會(huì)有Display節(jié)點(diǎn)。返回值:返回JSON字符串,內(nèi)容類似:"ClassName":"Ma nu facturerList","ReleaseDate":"20220813", 發(fā)布 /更新日期"Ma nu facturerList":"Display":"廠
42、家的名字,沒有設(shè)定那么不存在此節(jié)點(diǎn)","ID":不會(huì)改變的唯一標(biāo)識(shí),"URL":"URL OF Man ufacturer Image , Size = 256 x256", "KEY":"用于后續(xù)操作的動(dòng)態(tài)字符串密鑰,代表此廠商,其他廠商信息.,注意:此函數(shù)必須在Init之后調(diào)用。242獲取SDK支持的特定廠商的產(chǎn)品列表String GetProductList(Stri ng strMa nufacturerKey , String strLa nguageCodeBylS0639)函數(shù)功能
43、:輸入?yún)?shù):獲取SDK支持的特定廠商的產(chǎn)品列表;strManufacturerKey 從 GetManufacturerList 函數(shù)中得到的 Key。strLanguageCodeBylSO639輸入?yún)?shù)語言碼參考ISO 639-1,使用兩位不區(qū)分大小寫的字符。如果對(duì)應(yīng)的條目沒有設(shè)定指定的語言碼的顯示內(nèi)容, 那么返回的節(jié)點(diǎn)中不會(huì)有Display節(jié)點(diǎn)。返回值:返回JSON字符串,內(nèi)容類似:"ClassName":"ProductList","ReleaseDate":"20220813", 發(fā)布 /更新日期&quo
44、t;ProductList":"Display":"產(chǎn)品的名字,沒有設(shè)定那么不存在此節(jié)點(diǎn)","ID":不會(huì)改變的唯一標(biāo)識(shí),"URL":"URL OF Product Image , Size = 256 x256","KEY":"用于后續(xù)操作的動(dòng)態(tài)字符串密鑰,代表此廠商-產(chǎn)品組合II,其他產(chǎn)品信息.獲取SDK支持的產(chǎn)品鏡片列表Stri ng GetGlassList(Stri ng strProductKey , Stri ng strLa nguageC
45、odeBylSO639)輸入?yún)?shù):strProductKey 從 GetProductList 函數(shù)中得到的 Key。strLanguageCodeBylSO639輸入?yún)?shù)語言碼參考ISO 639-1,使用兩位不區(qū)分大小寫的字符。如果對(duì)應(yīng)的條目沒有設(shè)定指定的語言碼的顯示內(nèi)容, 那么返回的節(jié)點(diǎn)中不會(huì)有Display節(jié)點(diǎn)。返回值:返回JSON字符串,內(nèi)容類似:"ClassName":"GlassList","ReleaseDate":"20220813", 發(fā)布 /更新日期"GlassList":&
46、quot;Display":"鏡片的名字,沒有設(shè)定那么不存在此節(jié)點(diǎn)","ID":不會(huì)改變的唯一標(biāo)識(shí),"URL":"URL OF Glass Image , Size = 256 x256","KEY":"用于后續(xù)操作的動(dòng)態(tài)字符串密鑰,代表此廠商-產(chǎn)品-鏡片組合。這個(gè) Key可以直接用于EnterMojingWorld",其他鏡片信息.244獲取Key的完整描述信息Stri ng GetGlassl nfo(Stri ng strGlassKey , Stri ng
47、strLa nguageCodeBylSO639)輸入?yún)?shù):strGlassKey代表廠商-產(chǎn)品-鏡片組合關(guān)系的 Key。strLanguageCodeBylSO639輸入?yún)?shù)語言碼參考ISO 639-1,使用兩位不區(qū)分大小寫的字符。如果對(duì)應(yīng)的條目沒有設(shè)定指定的語言碼的顯示內(nèi)容, 那么返回的節(jié)點(diǎn)中不會(huì)有 Display節(jié)點(diǎn)。返回值:返回JSON字符串,內(nèi)容類似:"ClassName":"GlassI nfo","ReleaseDate":"20220813",/ 發(fā)布 /更新日期"Ma nu factur
48、er":"ID": 2,"Display":"北京暴風(fēng)魔鏡科技","URL":"URL OF Manufacturer Image , Size = 256 x256" ,"Product":"ID": 3,"Display":"暴風(fēng)魔鏡3代","URL":"URL OF Product Image , Size = 256 x256" ,"Glass&qu
49、ot;:"ID": 2,"Display":"暴風(fēng)魔鏡III標(biāo)準(zhǔn)鏡片","URL":"URL OF Glass Image , Size = 256 x256" 245拼接兩個(gè)KeyStri ng Gen eratio nGlassKey(Stri ng strCodeA String strCodeB )輸入?yún)?shù):strCodeA代表廠商-產(chǎn)品-鏡片組合關(guān)系的KeystrCodeB代表廠商-產(chǎn)品-鏡片組合關(guān)系的 Key 返回值: 使用CodeB中的信息補(bǔ)全 CodeA后合成的新的Key。發(fā)生錯(cuò)
50、誤時(shí)返回的描述信息當(dāng)出錯(cuò)的時(shí)候除了沒有初始化MojingSDK 所有返回的JSON字符串可能包含以下錯(cuò)誤提醒:"ERROR":"INV ALID MANUFACTURER ID", / 錯(cuò)誤的廠商 ID"ERROR":"INV ALID PRODUCT ID", /錯(cuò)誤的產(chǎn)品ID或者產(chǎn)品ID與廠商不匹配"ERROR":"INV ALID GLASS ID",/錯(cuò)誤的鏡片ID或者鏡片ID與產(chǎn)品不匹配"ERROR":"INV ALID APP ID&
51、quot;, / 錯(cuò)誤的應(yīng)用程序ID或者應(yīng)用程序ID與當(dāng)前應(yīng)用 程序不符/錯(cuò)誤的平臺(tái)ID或者平臺(tái)ID與/無效的KEY/ 缺少 APP ID缺少廠商ID/缺少產(chǎn)品ID/缺少鏡片ID/缺少平臺(tái)ID"ERROR":"INV ALID PLATFORM ID", 當(dāng)前平臺(tái)不符"ERROR":"INV ALID KEY", "ERROR":"APP ID MISSING", "ERROR":"MANUFACTURER ID MISSING",/
52、"ERROR":"PRODUCT ID MISSING", "ERROR":"GLASS ID MISSING", "ERROR":"PLATFORM ID MISSING"2.5使用藍(lán)牙手柄SDK支持暴風(fēng)魔鏡的1代、2代、3代和4代安卓手柄,另外支持標(biāo)準(zhǔn)藍(lán)牙HID手柄,開發(fā)者可以自行決定支持哪些手柄。連接手柄使用手柄需要在安卓的Manifest.xml中參加配置支持,格式如下:vapplicationandroid:label="XXXX" >vm
53、eta-dataan droid:n ame="com.baofe ng.moji ng.joystick.use"an droid:value="true"/></ application>當(dāng)value="true"的時(shí)候表示啟用輸入設(shè)備支持,value="false"的時(shí)候表示不啟用,可以通過這個(gè)開關(guān)進(jìn)行輸入控制的開關(guān),默認(rèn)情況下是開啟的, 也就是說,如果不進(jìn)行上面的配置,依然可以使用手柄。要連接手柄,首先需要在Activity 中實(shí)現(xiàn)MojinglnputCallback接口:public
54、class MyActivityexte nds Activityimpleme ntsMojingln putCallback然后,在MyActivity的On Create函數(shù)中實(shí)例化手柄控制器:Mjingln putMa nagerjoystick= Mojingln putMa nager.getMoj ingln putMa nager();然后,調(diào)用手柄控制器的AddProtocal函數(shù),將需要支持的協(xié)議添加給Mojingln putMa nagerjoystick.AddProtocal(Moji ngln putMa nager.Protocol_Bluetooth),然后調(diào)用
55、Conn ect函數(shù),將當(dāng)前 Activity和inputmap.josn路徑作為參數(shù):joystick.Connect( this , "/sdcard/MojingSDK/InputMap.json") , inputmap.josn文件的文件名和路徑根據(jù)APP需要進(jìn)行命名和存放。如果開發(fā)者認(rèn)為默認(rèn)配置文件已經(jīng)足夠,那么將配置文件全路徑名設(shè)置為空,比方, joystick .Connect( this , null ), SDK會(huì)自動(dòng)加載默認(rèn)配置文件,這個(gè)配置文件目前支持魔鏡1、2、3、4和小米藍(lán)牙手柄等標(biāo)準(zhǔn)HID手柄,默認(rèn)配置文件可能不符合所有需求,所以用戶根據(jù)自己需
56、要定制一個(gè)自己的配置文件,這樣可以靈活的配置手柄的功能,配置文件說明請(qǐng)參看手柄配置文件詳細(xì)說明。斷開手柄Mojingln putMa nager的 Disconnect接不使用手柄時(shí),應(yīng)該斷開手柄,這個(gè)需要調(diào)用口:void Disc onn ect();功能:斷開手柄連接配置手柄使用方式手柄是通過json配置文件進(jìn)行配置的, 通過配置文件,可以靈活定制手柄的使用方式,SDK中已經(jīng)給了 Demo配置文件,并進(jìn)行了詳細(xì)注釋,需要時(shí)進(jìn)行修改即可。使能特定的藍(lán)牙手柄通過配置文件可以配置特定的藍(lán)牙手柄,Demo配置文件中給出了小米藍(lán)牙手柄等標(biāo)準(zhǔn)HID手柄的根本配置方式;如果想配置特殊手柄,參考Demo配
57、置文件就可以進(jìn)行配置了,Demo配置文件有很好的注釋,幫助理解每個(gè)配置項(xiàng)的含義。關(guān)于配置文件SDK使用新的方式來配置手柄的使用了,通過配置文件來定義手柄的使用,為在調(diào)用 joystick.Connect函數(shù)的時(shí)候,第二個(gè)參數(shù)傳入的就是json配置文件的全路徑。配置文件可以配置例如按鍵的鍵值映射、軸轉(zhuǎn)換為gamepad按鍵、選擇使用四向鍵或者八向鍵或者配置特定標(biāo)準(zhǔn)HID手柄等功能,用戶可以參考SDK提供的默認(rèn)的配置文件,并在此根底上修改出適宜的配置文件,配置文件說明參考手柄配置文件詳細(xì)說明,配置文件可以在SDK當(dāng)前正在使用的手柄配置文件下載。2.5.6 多個(gè) Activity 共用一個(gè) MojinglnputManager手柄連接的建立比擬費(fèi)時(shí),假設(shè)應(yīng)用存在多個(gè)Activity時(shí),可以考慮創(chuàng)立一個(gè)全局的手柄控制器,在切換Activity時(shí),假設(shè)需要更改接收手柄回調(diào)的處理,可以調(diào)用setCallback來更改回調(diào)public boolea nsetCallback(Moj ingln putCallbackcallback )功能:設(shè)置手柄消息回調(diào)輸入?yún)?shù):回調(diào)接口實(shí)例當(dāng)原來的callback|與新設(shè)置的callback不同,且新設(shè)置的 ca
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度煙草店店鋪轉(zhuǎn)讓及員工安置合同
- 二零二五年度美發(fā)店員工培訓(xùn)考核合同
- 二零二五年度物業(yè)管理責(zé)任合同嚴(yán)格責(zé)任與業(yè)主權(quán)益保障
- 2025年度文化演出項(xiàng)目終止及票房分成合同
- 2025年度銀行貸款房產(chǎn)反擔(dān)保合同示范文本
- 2025年度輕鋼別墅鋼結(jié)構(gòu)設(shè)計(jì)制造與施工合同
- 2025年度驛站快遞網(wǎng)點(diǎn)租賃及轉(zhuǎn)讓合同范本
- 二零二五年度環(huán)保節(jié)能設(shè)備安裝合同4篇
- 二零二五版消防器材售后服務(wù)保障合同4篇
- 二零二五版飯店服務(wù)員勞動(dòng)合同解除條件合同3篇
- 《社區(qū)康復(fù)》課件-第五章 脊髓損傷患者的社區(qū)康復(fù)實(shí)踐
- 繪本《圖書館獅子》原文
- 安全使用公共WiFi網(wǎng)絡(luò)的方法
- 2023年管理學(xué)原理考試題庫附答案
- 【可行性報(bào)告】2023年電動(dòng)自行車相關(guān)項(xiàng)目可行性研究報(bào)告
- 歐洲食品與飲料行業(yè)數(shù)據(jù)與趨勢(shì)
- 放療科室規(guī)章制度(二篇)
- 中高職貫通培養(yǎng)三二分段(中職階段)新能源汽車檢測(cè)與維修專業(yè)課程體系
- 浙江省安全員C證考試題庫及答案(推薦)
- 目視講義.的知識(shí)
- 房地產(chǎn)公司流動(dòng)資產(chǎn)管理制度
評(píng)論
0/150
提交評(píng)論