摘要:下載下載下載包下載下載概述概述概述歡迎使用,產(chǎn)品能夠為開發(fā)者提供更便捷接入高可靠的云手機服務(wù),讓開發(fā)者快速搭建實時項目。示例代碼獲取云手機媒體流獲取云手機媒體流建立信令服務(wù)器連接并且連接成功后,即可獲取遠程媒體流。
歡迎使用H5 UPhone SDK ,產(chǎn)品能夠為開發(fā)者提供更便捷接入、高可靠的云手機服務(wù),讓開發(fā)者快速搭建實時項目。開發(fā)者可在H5 UPhone SDK提供的功能基礎(chǔ)上開發(fā)新功能,同時還可結(jié)合官方提供的配套demo進一步了解內(nèi)置功能,應(yīng)用場景廣闊,開發(fā)簡單易懂。
在開始集成H5 UPhone SDK前,請確保開發(fā)環(huán)境滿足一下要求:
? 準(zhǔn)備一臺可以連接到互聯(lián)網(wǎng)的Windows或macOS計算機。
? 使用最新版本的Chrome瀏覽器。
? 網(wǎng)頁執(zhí)行H5標(biāo)準(zhǔn)。
? viewport設(shè)置不可縮放。
導(dǎo)入SDK1.解壓SDK壓縮包,將uphone-sdk文件夾放入項目中。*開發(fā)者可借鑒官方提供demo。
用戶創(chuàng)建媒體界面,并在媒體界面導(dǎo)入"controller.js"、"proto.js"。說明:在創(chuàng)建引擎之前,開發(fā)者需定義一個id為phone-video的video標(biāo)簽,SDK會在這個元素內(nèi)加載音視頻。video標(biāo)簽設(shè)置autoplay、playsinline、webkit-playsinline屬性。
示例代碼
<div>
<video id="phone-video" autoplay="autoplay" playsinline webkit-playsinline>video>
div>
<script src="./uphone-sdk/proto.js">script>
<script type="module">
import controller from "../uphone-sdk/controller.js "; //文件路徑不固定
script>
初始化創(chuàng)建引擎實例,創(chuàng)建controller引擎實例,將參數(shù)傳入。var Controller = new controller(loadingParams)
示例代碼
<div>
<video id="phone-video" autoplay="autoplay" playsinline webkit-playsinline>video>
div>
<script src="./uphone-sdk/proto.js">script>
<script type="module">
import controller from "../uphone-sdk/controller.js "; //文件路徑不固定
//----第一步初始化SDK----
var loadingParams = {
Id: "替換為可用ID",
mediaConstraints: {
audio: true,
video: true,
},
gamename: "拉起游戲名字",
jobid: "唯一即可", //
token:"如果調(diào)用api接口SetUPhoneToken進行了設(shè)置,此處為必填,否則為可選"
}
var Controller = new controller(loadingParams)
script>
參數(shù)說明
Id:可連接的云手機ID。必填
mediaConstraints:連接約束條件。必填
audio:true/false,為true則獲取音頻流。
video:true/false,為true則獲取視頻流
gamename:**要拉起的游戲名稱
jobid:**唯一即可
token:如需調(diào)用api接口SetUPhoneToken進行了設(shè)置,*此處為必填。
具體例子請查看官方demo
示例代碼
Controller.onstatus(statustype,callback)
//設(shè)備連接狀態(tài)回調(diào)
Controller.onstatus("devicestatus", (states) => {
if (states == 1001) {
console.log("連接設(shè)備失敗");
}
if (states == 1003) {
console.log("創(chuàng)建設(shè)備控制失敗");
}
if (states == 1008) {
console.log("服務(wù)器應(yīng)答失敗");
}
if (states == 1026) {
console.log("設(shè)備已被占用");
}
if (states == 73002) {
console.log("設(shè)備不存在");
}
});
//網(wǎng)絡(luò)連接狀態(tài)回調(diào)
Controller.onstatus("networkstatus", (states) => {
if (states == "connected") {
console.log("網(wǎng)絡(luò)連接成功");
}
if (states == "disconnected") {
console.log("網(wǎng)絡(luò)連接失敗");
}
});
//啟動游戲狀態(tài)回調(diào)
Controller.onstatus("gamestatus", (states) => {
if (states == "success") {
console.log("啟動成功");
}
if (states == "fail") {
console.log("啟動失敗");
}
});
//切換分辨率狀態(tài)回調(diào)
Controller.onstatus("resolution", (states) => {
if (states == "success") {
console.log("切換成功");
} else {
console.log("切換失敗");
}
});
參數(shù)類型必填意義statesint回調(diào)數(shù)據(jù)連接狀態(tài)的回調(diào)函數(shù)返回數(shù)據(jù)
連接云手機開發(fā)者在媒體界面創(chuàng)建實例之后,即可啟動云手機建立連接。
示例代碼
Controller.startConnection();
獲取云手機媒體流建立信令服務(wù)器連接并且p2p連接成功后,即可獲取遠程媒體流。
示例代碼
var stream = Controller.getPhoneStream();
var phoneVideo = document.getElementById("phone-video");
phoneVideo.srcObject = stream; // 添加視頻流到video標(biāo)簽
說明 : 目前云手機視頻流比例分為1:2或9:16兩種。開發(fā)者可在video標(biāo)簽方法onloadedmetadata中 獲取到視頻流實際寬高,根據(jù)視頻比例設(shè)置需要展示的video大小即可。
如:獲取到視頻流寬為720,高為1440。video標(biāo)簽可設(shè)置寬高保證1:2比例即可。
斷開云手機連接斷開連接調(diào)用以下接口
示例代碼
Controller.closeConnection();
重新連接重新建立云手機連接
示例代碼
Controller.reStart();
切換分辨率切換分辨率時傳入規(guī)定好的分辨率id,即可切換對應(yīng)的分辨率
說明:手機端切換分辨率傳遞id不同,可參照下方參數(shù)說明
示例代碼
Controller.changeResolution(id);
參數(shù)類型必填意義idint是分辨率數(shù)值,具體數(shù)值demo中有說明
獲取最后一次操作的時間戳示例代碼
Controller.getLastTimeStamp(); //單位毫秒
獲取延遲顯示獲取網(wǎng)絡(luò)延遲時間
示例代碼
Controller.getNetDelay((roundtime) => {console.log(roundtime) //單位毫秒;
參數(shù)類型必填意義roundtimeint回調(diào)數(shù)據(jù)延遲回調(diào)返回延遲信息
返回云手機桌面返回到云手機桌面
示例代碼
Controller.backHome();
一鍵拉起游戲調(diào)用該方法一鍵啟動云手機內(nèi)游戲
示例代碼
let message = {
gamename:"xxx.xxx.xxx", //游戲包名
jobid: "", //后臺區(qū)分任務(wù)標(biāo)識,唯一即可
};
Controller.startGame(message);
清理云手機后臺進程清理云手機后臺應(yīng)用(前端顯示的應(yīng)用不受影響)
示例代碼
Controller.clearUp()
下載官方demo壓縮包,解壓文件將文件夾導(dǎo)入到開發(fā)工具。
可在本地服務(wù)環(huán)境下運行,瀏覽器調(diào)試。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/126877.html
摘要:重要接口接口含義建議調(diào)用時機初始化連接云手機需要展示云手機界面時說明使用前請對工程進行配置,否則不生效。該僅支持真機運行。每次進入云手機會從遠端獲取分辨率,可以根據(jù)自己的需求修改相應(yīng)的分辨率可以參照設(shè)置分辨率設(shè)置分辨率。 SDK下載iOS SDK 用于 iOS 終端接入,支持端游和手游。SDK 提供了豐富的接口,滿足大部分接入需求。接入方法請參見 工程配置,并可通過接口說明頁面,獲取更多功能...
摘要:重要接口接口含義建議調(diào)用時機初始化連接云手機需要展示云手機界面時說明使用前請對工程進行配置,否則不生效。該僅支持真機運行。每次進入云手機會從遠端獲取分辨率,可以根據(jù)自己的需求修改相應(yīng)的分辨率可以參照設(shè)置分辨率設(shè)置分辨率。 SDK下載iOS SDK 用于 iOS 終端接入,支持端游和手游。SDK 提供了豐富的接口,滿足大部分接入需求。接入方法請參見 工程配置,并可通過接口說明頁面,獲取更多功能...
摘要:重要接口接口含義建議調(diào)用時機初始化連接云手機需要展示云手機界面時說明使用前請對工程進行配置,否則不生效。該僅支持真機運行。每次進入云手機會從遠端獲取分辨率,可以根據(jù)自己的需求修改相應(yīng)的分辨率可以參照設(shè)置分辨率設(shè)置分辨率。 SDK下載iOS SDK 用于 iOS 終端接入,支持端游和手游。SDK 提供了豐富的接口,滿足大部分接入需求。接入方法請參見 工程配置,并可通過接口說明頁面,獲取更多功能...
摘要:重要接口接口含義建議調(diào)用時機初始化連接云手機需要展示云手機界面時說明使用前請對工程進行配置,否則不生效。該僅支持真機運行。每次進入云手機會從遠端獲取分辨率,可以根據(jù)自己的需求修改相應(yīng)的分辨率可以參照設(shè)置分辨率設(shè)置分辨率。 SDK下載iOS SDK 用于 iOS 終端接入,支持端游和手游。SDK 提供了豐富的接口,滿足大部分接入需求。接入方法請參見 工程配置,并可通過接口說明頁面,獲取更多功能...
摘要:重要接口接口含義建議調(diào)用時機初始化連接云手機需要展示云手機界面時說明使用前請對工程進行配置,否則不生效。該僅支持真機運行。每次進入云手機會從遠端獲取分辨率,可以根據(jù)自己的需求修改相應(yīng)的分辨率可以參照設(shè)置分辨率設(shè)置分辨率。 SDK下載iOS SDK 用于 iOS 終端接入,支持端游和手游。SDK 提供了豐富的接口,滿足大部分接入需求。接入方法請參見 工程配置,并可通過接口說明頁面,獲取更多功能...
閱讀 454·2024-11-07 18:25
閱讀 130762·2024-02-01 10:43
閱讀 943·2024-01-31 14:58
閱讀 904·2024-01-31 14:54
閱讀 83006·2024-01-29 17:11
閱讀 3263·2024-01-25 14:55
閱讀 2057·2023-06-02 13:36
閱讀 3166·2023-05-23 10:26