资讯专栏INFORMATION COLUMN

SDK下载 云手机 UPhone

ernest.wang / 2979人阅读

摘要:下载下载下载包下载下载概述概述概述欢迎使用,产品能够为开发者提供更便捷接入高可靠的云手机服务,让开发者快速搭建实时项目。示例代码获取云手机媒体流获取云手机媒体流建立信令服务器连接并且连接成功后,即可获取远程媒体流。

SDK下载

SDKZIP包GitHubH5SDK下载GitHub下载

概述

欢迎使用H5 UPhone SDK ,产品能够为开发者提供更便捷接入、高可靠的云手机服务,让开发者快速搭建实时项目。开发者可在H5 UPhone SDK提供的功能基础上开发新功能,同时还可结合官方提供的配套demo进一步了解内置功能,应用场景广阔,开发简单易懂。

快速入门

准备环境

在开始集成H5 UPhone SDK前,请确保开发环境满足一下要求:

• 准备一台可以连接到互联网的Windows或macOS计算机。

• 使用最新版本的Chrome浏览器。

• 网页执行H5标准。

• viewport设置不可缩放。

导入SDK

1.解压SDK压缩包,将uphone-sdk文件夹放入项目中。*开发者可借鉴官方提供demo。

img

用户创建媒体界面,并在媒体界面导入"controller.js"、"proto.js"。

img

img

说明:在创建引擎之前,开发者需定义一个id为phone-video的video标签,SDK会在这个元素内加载音视频。video标签设置autoplay、playsinline、webkit-playsinline属性。

示例代码

</>复制代码

  1. <div>
  2. <video id="phone-video" autoplay="autoplay" playsinline webkit-playsinline>video>
  3. div>
  4. <script src="./uphone-sdk/proto.js">script>
  5. <script type="module">
  6. import controller from "../uphone-sdk/controller.js "; //文件路径不固定
  7. script>
初始化创建引擎实例,创建controller引擎实例,将参数传入。

</>复制代码

  1. var Controller = new controller(loadingParams)

示例代码

</>复制代码

  1. <div>
  2. <video id="phone-video" autoplay="autoplay" playsinline webkit-playsinline>video>
  3. div>
  4. <script src="./uphone-sdk/proto.js">script>
  5. <script type="module">
  6. import controller from "../uphone-sdk/controller.js "; //文件路径不固定
  7. //----第一步初始化SDK----
  8. var loadingParams = {
  9. Id: "替换为可用ID",
  10. mediaConstraints: {
  11. audio: true,
  12. video: true,
  13. },
  14. gamename: "拉起游戏名字",
  15. jobid: "唯一即可", //
  16. token:"如果调用api接口SetUPhoneToken进行了设置,此处为必填,否则为可选"
  17. }
  18. var Controller = new controller(loadingParams)
  19. script>

参数说明

Id:可连接的云手机ID。必填

mediaConstraints:连接约束条件。必填

audio:true/false,为true则获取音频流。

video:true/false,为true则获取视频流

gamename:**要拉起的游戏名称

jobid:**唯一即可

token:如需调用api接口SetUPhoneToken进行了设置,*此处为必填。

接口说明

状态回调函数

具体例子请查看官方demo

示例代码

</>复制代码

  1. Controller.onstatus(statustype,callback)
  2. //设备连接状态回调
  3. Controller.onstatus("devicestatus", (states) => {
  4. if (states == 1001) {
  5. console.log("连接设备失败");
  6. }
  7. if (states == 1003) {
  8. console.log("创建设备控制失败");
  9. }
  10. if (states == 1008) {
  11. console.log("服务器应答失败");
  12. }
  13. if (states == 1026) {
  14. console.log("设备已被占用");
  15. }
  16. if (states == 73002) {
  17. console.log("设备不存在");
  18. }
  19. });
  20. //网络连接状态回调
  21. Controller.onstatus("networkstatus", (states) => {
  22. if (states == "connected") {
  23. console.log("网络连接成功");
  24. }
  25. if (states == "disconnected") {
  26. console.log("网络连接失败");
  27. }
  28. });
  29. //启动游戏状态回调
  30. Controller.onstatus("gamestatus", (states) => {
  31. if (states == "success") {
  32. console.log("启动成功");
  33. }
  34. if (states == "fail") {
  35. console.log("启动失败");
  36. }
  37. });
  38. //切换分辨率状态回调
  39. Controller.onstatus("resolution", (states) => {
  40. if (states == "success") {
  41. console.log("切换成功");
  42. } else {
  43. console.log("切换失败");
  44. }
  45. });
参数类型必填意义statesint回调数据连接状态的回调函数返回数据 连接云手机

开发者在媒体界面创建实例之后,即可启动云手机建立连接。

示例代码

</>复制代码

  1. Controller.startConnection();
获取云手机媒体流

建立信令服务器连接并且p2p连接成功后,即可获取远程媒体流。

示例代码

</>复制代码

  1. var stream = Controller.getPhoneStream();
  2. var phoneVideo = document.getElementById("phone-video");
  3. phoneVideo.srcObject = stream; // 添加视频流到video标签

说明 : 目前云手机视频流比例分为1:2或9:16两种。开发者可在video标签方法onloadedmetadata中 获取到视频流实际宽高,根据视频比例设置需要展示的video大小即可。

如:获取到视频流宽为720,高为1440。video标签可设置宽高保证1:2比例即可。

断开云手机连接

断开连接调用以下接口

示例代码

</>复制代码

  1. Controller.closeConnection();
重新连接

重新建立云手机连接

示例代码

</>复制代码

  1. Controller.reStart();
切换分辨率

切换分辨率时传入规定好的分辨率id,即可切换对应的分辨率

说明:手机端切换分辨率传递id不同,可参照下方参数说明

示例代码

</>复制代码

  1. Controller.changeResolution(id);
参数类型必填意义idint是分辨率数值,具体数值demo中有说明 获取最后一次操作的时间戳

示例代码

</>复制代码

  1. Controller.getLastTimeStamp(); //单位毫秒
获取延迟显示

获取网络延迟时间

示例代码

</>复制代码

  1. Controller.getNetDelay((roundtime) => {console.log(roundtime) //单位毫秒;
参数类型必填意义roundtimeint回调数据延迟回调返回延迟信息 返回云手机桌面

返回到云手机桌面

示例代码

</>复制代码

  1. Controller.backHome();
一键拉起游戏

调用该方法一键启动云手机内游戏

示例代码

</>复制代码

  1. let message = {
  2. gamename:"xxx.xxx.xxx", //游戏包名
  3. jobid: "", //后台区分任务标识,唯一即可
  4. };
  5. Controller.startGame(message);
清理云手机后台进程

清理云手机后台应用(前端显示的应用不受影响)

示例代码

</>复制代码

  1. Controller.clearUp()

导入官方 Demo

下载官方demo压缩包,解压文件将文件夹导入到开发工具。

可在本地服务环境下运行,浏览器调试。

常见错误码

image

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/126877.html

相关文章

  • SDK下载 手机 UPhone

    摘要:重要接口接口含义建议调用时机初始化连接云手机需要展示云手机界面时说明使用前请对工程进行配置,否则不生效。该仅支持真机运行。每次进入云手机会从远端获取分辨率,可以根据自己的需求修改相应的分辨率可以参照设置分辨率设置分辨率。 SDK下载iOS SDK 用于 iOS 终端接入,支持端游和手游。SDK 提供了丰富的接口,满足大部分接入需求。接入方法请参见 工程配置,并可通过接口说明页面,获取更多功能...

    ernest.wang 评论0 收藏549
  • SDK下载 手机 UPhone

    摘要:重要接口接口含义建议调用时机初始化连接云手机需要展示云手机界面时说明使用前请对工程进行配置,否则不生效。该仅支持真机运行。每次进入云手机会从远端获取分辨率,可以根据自己的需求修改相应的分辨率可以参照设置分辨率设置分辨率。 SDK下载iOS SDK 用于 iOS 终端接入,支持端游和手游。SDK 提供了丰富的接口,满足大部分接入需求。接入方法请参见 工程配置,并可通过接口说明页面,获取更多功能...

    ernest.wang 评论0 收藏701
  • SDK下载 手机 UPhone

    摘要:重要接口接口含义建议调用时机初始化连接云手机需要展示云手机界面时说明使用前请对工程进行配置,否则不生效。该仅支持真机运行。每次进入云手机会从远端获取分辨率,可以根据自己的需求修改相应的分辨率可以参照设置分辨率设置分辨率。 SDK下载iOS SDK 用于 iOS 终端接入,支持端游和手游。SDK 提供了丰富的接口,满足大部分接入需求。接入方法请参见 工程配置,并可通过接口说明页面,获取更多功能...

    ernest.wang 评论0 收藏1840
  • SDK下载 手机 UPhone

    摘要:重要接口接口含义建议调用时机初始化连接云手机需要展示云手机界面时说明使用前请对工程进行配置,否则不生效。该仅支持真机运行。每次进入云手机会从远端获取分辨率,可以根据自己的需求修改相应的分辨率可以参照设置分辨率设置分辨率。 SDK下载iOS SDK 用于 iOS 终端接入,支持端游和手游。SDK 提供了丰富的接口,满足大部分接入需求。接入方法请参见 工程配置,并可通过接口说明页面,获取更多功能...

    ernest.wang 评论0 收藏1700
  • SDK下载 手机 UPhone

    摘要:重要接口接口含义建议调用时机初始化连接云手机需要展示云手机界面时说明使用前请对工程进行配置,否则不生效。该仅支持真机运行。每次进入云手机会从远端获取分辨率,可以根据自己的需求修改相应的分辨率可以参照设置分辨率设置分辨率。 SDK下载iOS SDK 用于 iOS 终端接入,支持端游和手游。SDK 提供了丰富的接口,满足大部分接入需求。接入方法请参见 工程配置,并可通过接口说明页面,获取更多功能...

    ernest.wang 评论0 收藏606

发表评论

0条评论

最新活动
阅读需要支付1元查看
<