您尚未登录

登录

您尚未登录

登录

推荐您使用PC浏览器访问

确定
  • 开发者中心
  • >
  • 云游戏
  • >
  • SDK开发指南
  • >
  • 云游戏基础SDK
  • >
  • H5
  • >
  • v6.42

文档版本号:2024131-112

变更说明:

SDK版本号 日期 更新内容
master-6.42 2024/1/31 1、设置鼠标模式Cloudplay.setMouseMode方法,增加滑屏、滑鼠模式
master-6.23 2023/7/10 1、新增场景回调cursorInfo,返回当前鼠标信息
2、新增场景回调gameScreenInfo,返回当前视频流的宽高
3、修改Cloudplay.sendMessageToRom方法,使其支持发送操作指令到实例端
4、新增Cloudplay.resetInputTimer()重置无操作超时计时器
master-6.22.1 2023/6/25 1、移除设置按键鼠标移动速度方法Cloudplay.setBtnMouseMoveRatio
2、更改设置全键盘显隐方法Cloudplay.showKeyboard为Cloudplay.setFullKeyboardState
3、更改设置Xbox、键鼠显隐方法Cloudplay.showGamepad为Cloudplay.setVirtualKeys
4、更改获取Xbox、键鼠按键类型方法Cloudplay.getVirtualGamepadType为Cloudplay.getVirtualKeys
5、新增获取全键盘是否显示Cloudplay.getFullKeyboardState用于查看当前全键盘是否显示
6、新增获取鼠标移动速度方法Cloudplay.getMouseMoveRatio用于查看当前鼠标移动速度
7、新增获取鼠标模式方法Cloudplay.setMouseMode用于查看当前设置的鼠标模式
master-6.4.0 2023/3/30 1、控制权查询方法的参数传入
master-6.3.0 2022/11/1 1、onSceneChanged回调函数中新增videoStreamInfo场景,获取视频流信息
master-6.2.0 2022/8/26 1、鼠标模式新增触控类型3——多点触控
2、onSceneChanged回调函数,新增mediaAction场景,用于获取摄像头、麦克风状态通知
3、onSceneChanged回调函数,新增gameExtraData场景,用于获取支付状态通知
4、支持全面屏(点对点)功能
master-6.1.0 2022/5/16 1、wait场景增加waitingTotalNum等待总人数字段
master-6.0.0 2022/4/28 1、首次发版

1 产品简介

欢迎使用海马云游戏服务,本文档主要介绍云游戏H5端SDK的接入流程及提供支持的API详情,开发者通过接入海马云游戏SDK,可以实现云游戏的播放、停止、状态回调等各类控制操作和数据交互,在海马云游戏端到端全栈云服务能力基础上,为用户带来顺畅的云游戏体验。在开始接入SDK前,请确认您已经拥有海马云游戏平台接入方ID并创建了渠道号,并已经完成了在海马云游戏平台上传游戏包等相关准备工作。

2 集成指引

在页面上引入 js 和 css 文件即可开始使用。

<!-- 引入样式 -->
<link rel="stylesheet" href="./saas-sdk.css">
<!-- 引入SDK -->
<script src="./saas-sdk.js"></script>

文件说明

文件名 说明
saas-sdk.css 云游戏SDK的css样式
saas-sdk.js 云游戏SDK的js插件
saas-player-worker.js 云游戏SDK的平台播放器
saas-player-android.js 云游戏SDK的Android平台播放器
saas-player-ios.js 云游戏SDK的iOS平台播放器
img文件夹 X86云游戏键位图片

3 快速开始

示例代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" type="text/css" href="./saas-sdk.css">
    <title>云游戏</title>
</head>
<body>
    <div id="example"></div>
</body>
</html>
<script src="./saas-sdk.js"></script>
<script>
    var initSDK = {
        accessKeyId: "",
        channelId: "",
        onSceneChanged: function (sceneId, extraInfo) {
        },
        MessageHandler: function (message) {
        }
    };
    var startGame = {
        pkgName: "",
        userInfo: {
            uId: "",
            uToken: "",
        },
        playingtime: 0,
        configInfo: "",
        cToken: "",
        appChannel: "",
        isPortrait: true,
    };
    Cloudplay.initSDK(initSDK);
    Cloudplay.startGame("example", startGame);
</script>

4 国际化

云游戏默认使用中文,若希望使用其他语言,则需要进行多语言设置。以英文为例,在html文件中:

<!-- 引入语言包 -->
<script src="./saas-sdk-en-US.js"></script>

5 场景回调

5.1 通用场景

参数说明

sceneId sceneId说明 extraInfo类型 extraInfo属性名 extraInfo属性说明
init 初始化 null - -
play 游戏开始 Object cid 本次云玩的cid
videoState 当前播放状态
videoId 播放器domId(使用非WebRTC为空)
stop 游戏结束 Object interval 本次游戏时间,单位为s
reason timeLimit:本次游戏时间已到
noOperation:无操作超时
instanceError:云端实例出错
tokenExpire:Token过期失效
maintainServer:正在维护服务器
internalError:内部错误
instanceLimit:超过实例数的申请上限
queueLimit:排队人数过多,禁止排队
internal:主动停止游戏
tokenFailed:token鉴权失败
normal:正常结束游戏
unsupportDevice:设备不支持
message 提示信息
stateChangeReason 通过调用服务端接口释放游戏时,透传的reason
errorCode 错误码(包含cid)
errorCodeWithoutCid 错误码
timeout 游戏时长到,但不结束游戏 Object interval 本次游戏时长,单位为s
message 提示信息
remainingTime 游戏剩余时长 Object time 剩余可用游戏时长,单位为s
countDown true:需要倒计时
false:不需要倒计时
wait 排队 Object reason showQueueInfo:显示当前的排队信息
applyGame:排队完成,正在进入游戏
whetherToQueue:是否进入排队,如果进入排队调用Cloudplay.enterQueue(),否则调用Cloudplay.outQueue()
message 提示信息
waitingPeople 等待人数
waitingTotalNum 等待总人数
waitingTime 预计等待时间,单位为s
totalTime 可用游戏时长 Object time 游戏时长,单位为s
message 提示信息
reconnectingStatus SDK重连状态提示 Object message 提示信息
offline 网络断开 Object message 提示信息
warning 出错提示 Object message 提示信息
loadPlayer 加载播放器 Object result true:成功
false:失败
crst 切换清晰度开始 Object source 当前清晰度id
des 目标清晰度id
cred 切换清晰度完成 Object result 0:失败
1:成功
cur_rate 当前清晰度id
method 0:手动
1:自动
resolutionList 清晰度列表 Object list list:数组 [{id:"", name:""}...]
selected 当前清晰度id
applyPinCode 获取授权码 Object result 0:失败
1:成功
cid 本次云玩的cid
pinCode 授权码
msg 提示信息
videoStreamInfo 视频流信息 Object videoFps 视频帧率,取不到为-1
bitRate 视频码率,取不到为-1
packetsLostRate 丢包率,取不到为-1
currentDelayMs 帧网络耗时,取不到为-1
decodeDelay 帧解码耗时,取不到为-1
renderDelay 帧渲染耗时,取不到为-1
frameSize 帧大小,取不到为-1
jitterBuffer 抖动,取不到为-1
framesReceived 收到的总帧数,取不到为-1
receiveFrameSize 收到帧的总大小,取不到为-1
delay 网络延迟,取不到为-1
codecImplementationName 编解码器名称,取不到为空字符串
codecName 解码器名称,取不到为空字符串
frameWidth 视频宽度,取不到为-1
frameHeight 视频高度,取不到为-1
gameScreenInfo 视频流的宽高 Object width 视频流宽
height 视频流高
playReady 播流地址已准备就绪 Object cid 本次云玩的cid
noInputTimeRemind 无操作超时即将到 Object noInputRemainingTime 无操作超时所剩时长,单位为s
message 提示信息
inputFocusNotify 输入框获取焦点和失去焦点通知 String - startIM:0.0000,0.9000:获取焦点及坐标
stopIM:失去焦点
startLiveState 开始直播通知 Object result 0:失败
1:成功
msg 提示信息
endLiveState 结束直播通知 Object result 0:失败
1:成功
msg 提示信息
distanceLimit 用户与机房距离超过限制 object minDistance 用户与机房距离,单位米

5.2 ARM游戏

参数说明

sceneId sceneId说明 extraInfo类型 extraInfo属性名 extraInfo属性说明
qqup 云上调起了QQ应用 null
openGallery 打开相册 null
openCamera 打开摄像头 null
share 分享 null
storage 云游戏中磁盘空间状态通知 Object action 当前Action
usablePercentage 当前可用空间占用百分比
gps 请求gps信息 null - -
intent intent消息拦截通知 null - -
sensorList sensor通知 Array cmd 1:开启
0:关闭
samplingPeriodUs sensor采样频率,单位为μs
sendPeriodMs 发送sensor数据频率,单位为ms
sensorType sensor对应的type。参考: https://developer.android.google.cn/reference/android/hardware/Sensor
seizingControl 获取控制权事件 Object result 0:失败
1:成功
cid 控制权抢夺者cid
msg 失败提示语
getControl 获取控制权结果通知 Object result 0:失败
1:成功
newFileAppear 新的可下载文件 Object image_name 文件名称
fileList 可下载文件列表 Object list 可下载文件列表 [name1,name2...] 排序为倒序
downLoadFileInfo 下载文件状态 Object success true:成功
false:失败
msg 失败时为错误信息描述
fileBold 文件二进制流
fileType 文件的类型
fileSize 文件的大小
fileName 文件名称
cancelDownLoadFail 取消下载失败原因 Object msg 失败原因描述
newBigFile 新文件通知 Object fileState 0:文件开始创建
1:文件创建完成
name 文件名称
url 文件下载地址
type 文件
duration 文件时长,单位为s。(文件类型为视频格式时该属性生效)
size 文件大小,单位为Byte
appNotForeground app当前不在前台运行
appCrash app崩溃
mediaDeviceRequestNotify 获取摄像头、麦克风状态通知 object action Camera:相机
Microphone:麦克风
data op:0 设备关闭
op:1 设备开启

5.3 X86游戏

参数说明

sceneId sceneId说明 extraInfo类型 extraInfo属性名 extraInfo属性说明
gameControl 控制权状态通知 Object state loses:失去
got:获得
cid 本次云玩的cid
gameExtraData 云端透传到客户端的消息 Object sdkData 消息内容
cursorInfo 当前鼠标信息 Object showOrHide true: 显示鼠标指针
false: 隐藏鼠标指针
gameCursorData 鼠标指针图片数据,图片为png格式
cursorWidth 鼠标指针图片宽
cursorHeight 鼠标指针图片高
cursorPos 初始鼠标位置
gameCursorData CURSOR_DEFAULT: 默认
CURSOR_CUSTOM: 自定义
CURSOR_ARROW: 箭头
CURSOR_HAND: 小手
CURSOR_HELP: 帮助
CURSOR_APPSTARTING: 箭头和沙漏
CURSOR_CROSS: 十字准线
CURSOR_IBEAM: 输入
clipBoard 透传云端剪切板数据 Object data 数据内容

6 消息回调

参数说明

参数 类型 说明
message Object 消息内容,详见message属性说明

message属性说明

属性名 类型 说明
userId string 目标userId
from string 消息发送方标识
to string 消息接收方标识
mid string 消息ID
type int 消息类型,固定值为1
ack int 应答类型,固定值为0
payload string 消息内容

7 API说明

7.1 通用API

7.1.1 游戏流程管理

7.1.1.1 初始化

函数原型 :

Cloudplay.initSDK(opitons);

opitons属性说明

属性名 类型 必填项 说明
accessKeyId String 接入方唯一id
channelId String 接入方自行定义,主要方便接入方推广。如一个APK,发布到不同的推广平台时用不同channelId
isIgnoreResizeEvent Boolean 是否忽略SDK内部的横竖屏旋转,默认:false
true:忽略
false:不忽略
onSceneChanged Function 场景切换回调函数,详见场景回调
MessageHandler Function 消息透传回调函数,详见场景透传

示例代码:

Cloudplay.initSDK({
    accessKeyId: "",
    channelId: "",
    onSceneChanged: function (sceneId, extraInfo) {
    },
    MessageHandler: function (message) {
    }
});

7.1.1.2 申请游戏

函数原型 :

Cloudplay.startGame(domId, options);

参数说明

参数 类型 必填项 说明
domId Strings DOM节点id
options Object 申请游戏所需参数,详见options参数说明

options属性说明

属性名 类型 必填项 说明
userInfo Object 用户信息,详见userInfo属性说明
pkgName String 游戏包名称
appChannel String 游戏渠道号
cToken String 用来校验参数的有效性
playingtime String 本次可玩的总游戏时长,单位为s
configInfo String 免登录功能所需信息,如不使用,传任意非空字符串
isPortrait Boolean 游戏的横竖屏属性
true:竖屏游戏
false:横屏游戏
noInputTimeout Number 用户无操作断开时长,单位为s
onlyApply Boolean 仅申请游戏不播流
viewResolutionWidth Number 云端游戏画面宽
viewResolutionHeight Number 云端游戏画面高
cid Number 在保活期内的cid。如果使用控制权转移功能,cid为被转移者的cid
priority Number 申请游戏服务的优先级,默认设置为0,值越大优先级越高
isArchive Boolean 是否存档
true:存档
false:不存档
默认为false
autoPlayAudio Boolean 是否自动播放音频,默认为false
true:是
false:否
pinCode Number 控制权被转移者的授权码
bitRate Number 清晰度码率,单位为KB(如:200、500、800)
protoData String 透传字段,服务器端状态同步方法透传使用
resolutionId Number 清晰度id
richData Object 接入方业务控制透传参数
extraId String 预留字段,传空字符串
archiveFromUserId String 被读取文档用户id
archiveFromBid String 被读取文档bid
componentType Number 组件类型
0:activity
1:service
2:broadcast
componentName String 指定的组件名, 格式(packageName/componentName),如(快手开心消消乐):com.happyelements.AndroidAnimal.kuaishou/com.happyelements.hellolua.MainActivity
action String 组件对应的action
extraData Object 免登参数,详见extraData属性说明

userInfo属性说明

属性名 类型 必填项 说明
uId String 自行定义32位以内a-z、0-9字符串
uToken String 自行定义32位以内a-z、0-9字符串
uType Number 用户类型,默认为0
0:普通用户
5:超级用户

extraData属性说明

属性名 类型 必填项 说明
booleanExtra boolean 向Intent中添加Boolean
integerExtra number 向Intent中添加Integer
integerArrayExtra array 向Intent中添加Integer数组
integerListExtra array 向Intent中添加Integer List
stringExtra string 向Intent中添加String
stringArrayExtra array 向Intent中添加String数组
stringListExtra array 向Intent中添加String List
floatExtra number 向Intent中添加Float
floatArrayExtra array 向Intent中添加Float数组
floatListExtra array 向Intent中添加Float List
longExtra number 向Intent中添加Long
longArrayExtra array 向Intent中添加Long数组
longListExtra array 向Intent中添加Long List
componentNameExtra string 向Intent中添加componentName
uriExtra object 向Intent中添加uri

示例代码:

Cloudplay.startGame("example", {
    pkgName: "",
    userInfo: {
        uId: "",
        uToken: "",
    },
    playingtime: 0,
    configInfo: "",
    cToken: "",
    appChannel: "",
    isPortrait: true,
});

7.1.1.3 更新用户信息和游戏时长

函数原型 :

Cloudplay.updateGameUID(options, callback);

参数说明

参数 类型 必填项 说明
options Object 需要更新的信息,详见options参数说明
callback Function 回调函数,详见callback参数说明

options属性说明

属性名 类型 必填项 说明
playingTime Number 游戏时长,单位为ms
userInfo Object 用户信息,详见userInfo参数说明
cToken String 更新的 cToken,用来校验参数的有效性
tip String totalTime 场景回调的提示信息

userInfo属性说明

属性名 类型 必填项 说明
uId String 申请游戏时使用的uId
uToken String 申请游戏时使用的uToken
uType Number 申请游戏时使用的uType

callback参数说明

参数名 类型 属性名 说明
result Object
code 0:成功
非0:失败
msg 提示信息

示例代码:

Cloudplay.updateGameUID({
    playingTime: "",
    userInfo: {
        uId: "",
        uToken: ""
    }
}, function (result) {

});

7.1.1.4 结束游戏

函数原型 :

Cloudplay.stopGame(callback);

参数说明

参数 类型 必填项 说明
callback Function 回调函数,详见callback参数说明

callback参数说明

参数名 类型 属性名 说明
result Object
code 0:成功
非0:失败
msg 提示信息

7.1.2 实例管理

7.1.2.1 获取cid

函数原型 :

var result = Cloudplay.getCid();

返回值说明

返回值 类型 属性名 说明
result Object cid 本次云玩的cid

7.1.2.2 移除缓存中的cid

函数原型 :

Cloudplay.removeCacheCid();

7.1.2.3 检测未释放游戏

函数原型 :

Cloudplay.checkPlayingGame(options);

options属性说明

属性名 类型 必填项 说明
userInfo Object 用户信息,详见userInfo参数说明
playingGame Function 回调函数,详见callback参数说明

userInfo参数说明

属性名 类型 必填项 说明
uId String 申请游戏时使用的uId
uToken String 申请游戏时使用的uToken
uType Number 申请游戏时使用的uType

callback参数说明

参数名 类型 属性名 说明
result Object
code 0:成功
非0:失败
errorMessage 提示信息
playingGame 未释放的游戏信息

示例代码:

Cloudplay.checkPlayingGame({
    userInfo: {
        uId: "",
        uToken: "",
    },
    playingGame: function (result) {
    },
});

7.1.2.4 释放指定实例

函数原型 :

Cloudplay.releasePlayingGame(options,callback(data));

options属性说明

属性名 类型 必填项 说明
userInfo Object 用户信息,详见userInfo参数说明
cid Function 回调函数,详见callback参数说明
appChannel String 游戏渠道号
pkgName String 游戏渠包名
playingtime Number 游戏可玩时长
cToken String 用来校验参数的有效性

userInfo参数说明

属性名 类型 必填项 说明
uId String 申请游戏时使用的uId
uToken String 申请游戏时使用的uToken
uType Number 申请游戏时使用的uType

callback参数说明

参数名 类型 属性名 说明
data Object
code 0:成功
非0:失败
msg 提示信息

示例代码:

Cloudplay.releasePlayingGame({
    cid:"",
    appChannel: "",
    pkgName: "",
    playingtime: 0,
    cToken: "",
    userInfo: {
        uId: "",
        uToken: "",
        uType: "",
        uLevel: "",
    },
},function (data) {

});

7.1.3 存档管理

7.1.3.1 获取游戏存档状态

函数原型 :

Cloudplay.getGameArchiveStatus(options);

options属性说明

属性名 类型 必填项 说明
userInfo Object 用户信息,详见userInfo参数说明
pkgName String 游戏包名称
appChannel String 游戏渠道号
ifCanPlay Function 回调函数,详见callback参数说明

userInfo参数说明

属性名 类型 必填项 说明
uId String 申请游戏时使用的uId
uToken String 申请游戏时使用的uToken
uType String 申请游戏时使用的uType

callback参数说明

参数名 类型 属性名 说明
result Object
code 0:成功
非0:失败
errorMessage 提示信息
ifCanPlay true:存档完成
false:正在存档中

示例代码:

Cloudplay.getGameArchiveStatus({
    userInfo: {
        uId: "",
        uToken: ""
    },
    pkgName: "",
    appChannel: "",
    ifCanPlay: function (result) {

    }
});

7.1.3.2 查询游戏是否存在存档

函数原型 :

Cloudplay.gameArchived(options);

options属性说明

属性名 类型 必填项 说明
userInfo Object 用户信息,详见userInfo参数说明
pkgName String 游戏包名称
appChannel String 游戏渠道号
hasArchive Function 回调函数,详见callback参数说明

userInfo参数说明

属性名 类型 必填项 说明
uId String 申请游戏时使用的uId
uToken String 申请游戏时使用的uToken
uType String 申请游戏时使用的uType

callback参数说明

参数名 类型 属性名 说明
result Object
code 0:成功
非0:失败
errorMessage 提示信息
hasArchive true:有存档
false:无存档

示例代码:

Cloudplay.gameArchived({
    userInfo: {
        uId: "",
        uToken: ""
    },
    pkgName: "",
    appChannel: "",
    hasArchive: function (result) {

    }
});

7.1.4 直播管理

7.1.4.1 是否支持直播功能

函数原型 :

var result = Cloudplay.isSupportLiving();

返回值说明

返回值 类型 说明
result Boolean true:支持
false:不支持

7.1.4.2 开始直播

函数原型 :

Cloudplay.startLiving(roomId, pushStreamAddress);

参数说明

参数名 类型 必填项 说明
roomId String 房间号
pushStreamAddress String 推流地址

7.1.4.3 停止直播

函数原型 :

Cloudplay.endLiving(roomId);

参数说明

参数名 类型 必填项 说明
roomId String 房间号

7.1.5 音频播放

函数原型 :

Cloudplay.enableAudio(enabled);

参数说明

参数名 类型 必填项 说明
enabled Boolean true:播放
false:静音

7.1.6 切换清晰度

函数原型 :

Cloudplay.switchResolution(resolutionId, videoStreamWidth, videoStreamHeight);

参数说明

参数名 类型 必填项 说明
resolutionId String 目标清晰度id
videoStreamWidth String 视频流的宽度
videoStreamHeight String 视频流的高度

7.1.7 获取SDK版本号

函数原型 :

var result = Cloudplay.version();

返回值说明

返回值 类型 说明
result String SDK版本号

7.1.8 重置无操作超时计时器

函数原型 :

Cloudplay.resetInputTimer();

7.1.9 获取云游戏状态码

函数原型 :

var result = Cloudplay.getCloudPlayStatusCode();

返回值说明

返回值 类型 说明
result Number 100999001:无流地址,cid未获取成功(初始状态)
100999002:无流地址,cid获取成功,Socket连接失败
100999003:无流地址,cid获取成功,Socket连接成功,乒乓状态异常
100999004:无流地址,cid获取成功,Socket连接成功,乒乓状态正常
100999005:有流地址,video成功
100999006:有流地址,video失败,audio成功
100999007:有流地址,video失败,audio失败,input成功
100999008:有流地址,video失败,audio失败,input失败

7.1.10 云游戏结束信息上报

函数原型 :

Cloudplay.reportFinishInfo(options);

options属性说明

属性名 类型 必填项 说明
finishCode Number 0:正常结束
1:超时结束
2:异常结束有SDK错误码
3:异常结束无SDK错误码
pkgName String 云游戏包名
appChannel String 云游戏渠道号
gameId String 云游戏id号
cid String 云游戏cid
sdkVersion String SDK版本号

示例代码:

Cloudplay.reportFinishInfo({
    finishCode: 0,
    pkgName: "",
    appChannel: "",
    gameId: "",
    cid: "",
    sdkVersion: ""
});

7.1.11 获取网络请求数据

函数原型 :

var result = Cloudplay.getNetInfo();

返回值说明

返回值 类型 属性名 说明
result Array{}
url 网络请求的url
time 请求耗时
result 请求结果
msg 结果详细描述
uid 当前用户的uid
cid 当前云游的cid
action access:长连接
input:input连接
videoUrl:视频流
audioUrl:音频流
104/108/211:actionId
transId 当前申请的唯一id
packageName 请求的游戏包名
startTime 开始请求的时间
responseTime 请求结束的时间

7.1.12 发送消息到消息SDK

函数原型 :

Cloudplay.sendMessage(message);

参数说明

参数名 类型 必填项 说明
message String 发送的数据信息

7.1.13 获取视频流地址域名

函数原型 :

var result = Cloudplay.getStreamingDomain();

返回值说明

返回值 类型 说明
result String 当前云玩视频流地址域名

7.1.14 设置游戏画面方向

函数原型 :

Cloudplay.setScreenDirection(direction);

参数说明

参数名 类型 必填项 说明
direction String landscape:横向
portrait:竖向

7.1.15 发送操作指令到游戏

函数原型 :

Cloudplay.sendMessageToRom(command);

ARM参数说明

参数名 类型 必填项 说明
command String 操控云游戏的指令

ARM示例代码:

Cloudplay.sendMessageToRom("mouse:1:0.7568,0.5390");

X86参数说明

参数名 类型 必填项 说明
command Object X86游戏操控指令

X86鼠标键值

属性名 键值 说明
inputOp 512 左键
513 中键
514 右键
515 滚轮
516 移动
inputState 1 默认
2 按下
3 抬起
value 0 默认值
1 鼠标滚轮向上滚动
-1 鼠标滚轮向下滚动
posCursor x x轴光标位置
y y轴光标位置
posMouse x x轴物理位置
y y轴物理位置

X86键盘键值

字段 键值 说明
inputOp a 65
b 66
c 67
... ...
inputState 2 按下
3 抬起
4 Lock关闭
5 Lock开启
value 0 默认值
**X86手柄键值**

X86示例代码:

Cloudplay.sendMessageToRom({
    inputOp: 512,
    inputState: 3,
    value: 0,
    posCursor: {
        x: 200,
        y: 200
    },
    posMouse: {
        x: 960,
        y: 540
    }
});

7.1.16 当前页面播流

函数原型 :

Cloudplay.startPalyer();

7.2 ARM游戏

7.2.1 图片上传下载

7.2.1.1 上传图片到游戏

函数原型 :

Cloudplay.upload(options);

options属性说明

字段 键值 说明
inputState
1 默认
inputOp
1024 普通按键
1025 LT
1026 RT
1027 左摇杆X轴
1028 左摇杆Y轴
1029 右摇杆X轴
1030 右摇杆Y轴
value
0 按键抬起
1 十字键上按下
2 十字键下按下
4 十字键左按下
8 十字键右按下
9 十字键右上按下
10 十字键右下按下
6 十字键左下按下
5 十字键左上按下
16 START键按下
32 SELECT键按下
4096 A键按下
8192 B键按下
16384 X键按下
32768 Y键按下
64 LS键按下
256 LB键按下
128 RS键按下
512 RB键按下
255 RT/LT键按下
-32768~32767 左右摇杆X、Y轴值
属性名 类型 必填项 说明
file File 上传的文件
opType String 文件类型,仅支持:upload_image
onSuccess Function 上传成功回调,详见onSuccess参数说明
onError Function 上传失败回调,详见onError参数说明

onSuccess参数说明

参数名 类型 说明
file File 上传成功的原始文件
opType string 文件类型

onError参数说明

参数名 类型 说明
message File 提示信息
opType String 文件类型

示例代码:

Cloudplay.upload({
    file: file,
    opType: "upload_image",
    onSuccess: function (opType, file) {
    },
    onError: function (opType, message) {
    }
});

7.2.1.2 获取可下载图片列表

函数原型 :

Cloudplay.getFileList(options);

options属性说明

属性名 类型 必填项 说明
size Number 图片列表数量,默认为 19 (最大值为20)
offset Number 第一个图片起始位置,默认为0
callback Function 回调函数,详见callback参数说明

callback参数说明

参数名 类型 说明
result Array 图片列表

示例代码:

Cloudplay.getFileList({
    size: 20,
    offset: 2,
    callback: function (result) {
    }
});

7.2.1.3 下载指定图片

函数原型 :

Cloudplay.downLoadFile(name, callback);

参数说明

参数名 类型 必填项 说明
name String 图片名称
callback Object 回调函数,详见callback参数说明

callback参数说明

参数名 类型 属性名 说明
result Object
success true:成功
false:失败
msg 提示信息
fileBold 文件二进制流
fileType 文件类型
fileSize 文件大小
fileName 文件名称

示例代码:

Cloudplay.downLoadFile("fileName", function (result) {
});

7.2.1.4 取消下载图片

函数原型 :

Cloudplay.cancelDownLoadFile(name);

参数说明

参数名 类型 必填项 说明
name String 图片名称

7.2.2 文件下载

7.2.2.1 获取文件列表

函数原型 :

Cloudplay.getBigFileList(callback);

callback参数说明

参数名 类型 属性名 说明
result Object
name 文件名称
url 文件下载地址
type 文件类型
duration 文件时长,单位为s。(文件类型为视频格式时该属性生效)
size 文件大小,单位为Byte

7.2.2.2 开始下载保活

函数原型 :

Cloudplay.startHangUp(options, callabck);

options属性说明

属性名 类型 必填项 说明
downloadList Array 下载文件列表
hangUpTime Number 保活时长,单位为s
Cutoff Boolean true:断流
false:不断流

callabck参数说明

参数名 类型 属性名 说明
result Object
state 0:下载保活失败
1:开始下载保活
2:下载保活时间到
message 提示信息
gameTimerOver 当前游戏时长是否已耗尽
hangupTimeSeconds 当前剩余下载保活时间,单位为s

7.2.2.3 结束下载保活

函数原型 :

Cloudplay.stopHangUp(callback);

callback参数说明

参数名 类型 属性名 说明
result Object
state 0:失败
1:成功
message 提示信息
gameTimerOver 当前游戏时长是否已耗尽

7.2.3 视频帧信息

7.2.3.1 注册监听帧变化

函数原型 :

Cloudplay.requestVideoFrameCallback(callback);

callback参数说明

参数名 类型 属性名 说明
result Object
code 0:正常
1:浏览器不支持
2:当前流类型不支持
number 自增序号,number类型
timestamp 当前帧对应的时间戳
isRestart 是否重新开始播放视频
frameInfo Object
width 视频帧的宽度
height 视频帧的宽度
presentationTime 用户代理提交帧以进行合成的时间
expectedDisplayTime 用户代理期望框架可见的时间
mediaTime 媒体呈现时间戳

7.2.3.2 移除监听帧变化

函数原型 :

Cloudplay.removeRequestVideoFrameCallback();

7.2.4 控制权转移

7.2.4.1 获取授权码

函数原型 :

Cloudplay.getPinCode();

7.2.5 消息传输

7.2.5.1 消息其它发送消息到游戏

函数原型 :

Cloudplay.sendWSMessage(options);

options属性说明

属性名 类型 必填项 说明
type String clipboard:剪贴板
gps:GPS数据
intent:intent
data Array|Object 发送的内容,根据消息类型自定义
mid String 消息唯一ID
callback Function 回调函数,详见callback参数说明

callback参数说明

参数名 类型 说明
messageId String 发送时使用的消息ID
successed Boolean true:发送成功
false:发送失败
message String 提示信息

实例代码:

// 剪切板
Cloudplay.sendWSMessage({
    type: "clipboard",
    data: [{itemType: "text/plain", itemData: "abc"}],
    mid: (Math.random() * 1000000).toString().replace(".", ""),
    callback: function (messageId, successed, message) {
    }
});
// GPS数据
Cloudplay.sendWSMessage({
    type: "gps",
    data: {longitude: 116.23128, latitude: 40.22077},
    mid: (Math.random() * 1000000).toString().replace(".", ""),
});

7.2.5.2 发送传感器信息到游戏

函数原型:

Cloudplay.sendSensorData(options);

options属性说明

属性名 类型 必填项 说明
accuracy Number 精度类型,通过sensorList场景查看当前游戏需要的类型
sensorType Number sensor类型,通过sensorList场景查看当前游戏需要的类型
values Array sensor数据分别是X、Y、Z

示例代码:

Cloudplay.sendSensorData({
    accuracy:3,
    sensorType:2,
    values:[0.1563701, 0.073616914, 9.840504]
});

7.2.6 游戏截图

函数原型 :

Cloudplay.getCapture(options);

options属性说明

属性名 类型 必填项
zoom Number 图片压缩比例
callback Function 回调函数,详见callback参数说明

callback参数说明

参数名 类型 说明
result ArrayBuffer 图片数据

7.2.7 摄像头麦克风

7.2.7.1 摄像头画面镜像/旋转

函数原型:

Cloudplay.cameraRotate(options);

options属性说明

属性名 类型 必填项 说明
rotate Number 状态码。
0:正常(默认)
1:旋转90°
2:旋转180°
3:旋转270°
flip Number 状态码。
0:不镜像翻转(默认)
1:水平镜像翻转
2:垂直镜像翻转

示例代码:

Cloudplay.cameraRotate({
    rotate:1,
    flip:1
});

7.2.7.2 开启摄像头麦克风设备

函数原型:

Cloudplay.openMediaDevices(options,callback(status,Track));

options属性说明

属性名 类型 必填项 说明
audio Object 麦克风参数
video Object 摄像头参数
status Any 开启结果,开启成功时为空字符串,失败时为error时catch捕获的event
Track Track 返回的stream,成功时为媒体流,失败时为空字符串

示例代码:

Cloudplay.openMediaDevices({
    audio: {
        deviceId:"default",
        channelCount:2,
        sampleRate:48000,
        echoCancellation:true,
        noiseSuppression:true,
        autoGainControl:false,
    },
    video: {
        deviceId:"default",
        width:"1280",
        height:"720",
        frameRate:"30",
    }
},(status,mediaStream)=>{

});

7.2.7.3 摄像头麦克风指令确认

函数原型:

Cloudplay.mediaDevicesResponseNotify(action,options);

options属性说明

属性名 类型 必填项 说明
action String 媒体类型:”Camera”,”Microphone”
op Number 设备开关状态
1:开启
0:关闭
code Number 开启成功或者失败
0:成功
1:失败

示例代码:

Cloudplay.openMediaDevices({
    audio: {
        deviceId:"default",
        channelCount:2,
        sampleRate:48000,
        echoCancellation:true,
        noiseSuppression:true,
        autoGainControl:false,
    },
    video: {
        deviceId:"default",
        width:"1280",
        height:"720",
        frameRate:"30",
    }
},(status,mediaStream)=>{
    Cloudplay.mediaDevicesResponseNotify(action,{op:1,code:0});
});

7.2.7.4 关闭摄像头麦克风设备

函数原型:

Cloudplay.closeMediaDevices(action);

options属性说明

属性名 类型 必填项 说明
action string “Camera”,”Microphone”释放对应的设备,不传时释放所有。

示例代码:

Cloudplay.closeMediaDevices("Camera");

7.2.7.5 发送体感数据到游戏

函数原型:

Cloudplay.sendSenseMessage(data);

options属性说明

属性名 类型 必填项 说明
data Any 体感数据

示例代码:

Cloudplay.sendSenseMessage(data);

7.2.8 将游戏切换到前台

函数原型:

Cloudplay.bringUpApp();

7.3 X86游戏

7.3.1 控制权转移

7.3.1.1 获取授权码

函数原型:

Cloudplay.getPinCode();

7.3.1.2 控制权分配

函数原型:

Cloudplay.controlPowerDistribute(options, callback);

参数说明

参数名 类型 必填项 说明
options Object 分配参数,详见options参数说明
callback Function 回调函数,详见callback参数说明

options属性说明

属性名 类型 必填项 说明
cid Number 当前云玩主控cid
controlInfos Object[] 分配数据,详见controlInfos参数说明

controlInfos属性说明

属性名 类型 必填项 说明
cid Number 云玩主控或从控cid
position Number 1:获得控制权
0:失去控制权

callback参数说明

参数名 类型 属性名 说明
result Object
code 0:成功
非0:失败
errorMsg 提示信息
controlInfos 分配结果,详见controlInfos参数说明

示例代码:

Cloudplay.controlPowerDistribute({
    cid: "",
    controlInfos: [{cid: "", position: 1}, {cid: "", position: 0}]
}, function (result) {
});

7.3.1.3 控制权查询

函数原型:

Cloudplay.controlPowerQuery(options, callback);

参数说明

参数名 类型 必填项 说明
options Object 查询参数,详见options参数说明
callback Function 回调函数,详见callback参数说明

options属性说明

属性名 类型 必填项 说明
cid Number 当前云玩主控cid

callback参数说明

参数名 类型 属性名 说明
result Object
code 0:成功
非0:失败
errorMsg 提示信息
controlInfos 分配结果

示例代码:

Cloudplay.controlPowerQuery({
    cid: ""
}, function (result) {
});

7.3.2 触屏模式管理

7.3.2.1 设置鼠标移动速度

7.3.2.2 设置鼠标移动速度

函数原型:

Cloudplay.setMouseMoveRatio(speed);

参数说明

参数名 类型 必填项 说明
speed Number 移动速度值

7.3.2.3 设置鼠标模式

函数原型:

Cloudplay.setMouseMode(mode);

参数说明

参数名 类型 必填项 说明
mode Number 0:禁用
1:滑鼠点击
2:触控
3:多点触控
4:滑屏
5:滑鼠

7.3.2.4 获取鼠标模式

函数原型:

var result = Cloudplay.getMouseMode();

返回值说明

返回值 类型 说明
result Number 0:禁用
1:滑鼠点击
2:触控
3:多点触控
4:滑屏
5:滑鼠

7.3.2.5 获取鼠标坐标

函数原型:

var result = Cloudplay.getMouseCoordinate();

返回值说明

返回值 类型 属性名 说明
result Object
posCursor 光标位置
posMouse 物理位置

7.3.2.6 设置虚拟键位

函数原型:

Cloudplay.setVirtualKeys(type);

参数说明

参数名 类型 必填项 说明
type String xbox:xbox手柄布局
keyboard:自定义键鼠布局
NONE:不显示

7.3.2.7 获取虚拟键位

函数原型:

var result = Cloudplay.getVirtualKeys();

返回值说明

返回值 类型 说明
result String xbox:xbox手柄布局
keyboard:自定义键鼠布局
NONE:不显示

7.3.2.8 设置全键盘是否显示

函数原型:

Cloudplay.setFullKeyboardState(status);

参数说明

参数名 类型 必填项 说明
status Boolean true:显示
false:隐藏

7.3.2.9 获取全键盘是否显示

函数原型:

var result = Cloudplay.getFullKeyboardState();

返回值说明

返回值 类型 说明
result Boolean true:显示
false:隐藏

7.3.3 游戏截图

函数原型:

Cloudplay.captureGameImage(options, callback);

参数说明

参数名 类型 必填项 说明
options Object 截图参数,详见options参数说明
callback Function 回调函数,详见callback参数说明

options属性说明

属性名 类型 必填项 说明
uploadUrl String 图片上传地址, 必须是post请求
cid Number 本次云玩的cid
opType Number 1:截图
2:开始周期性截图
3:停止周期性截图
txId String 事务ID,每次调用传入的值保持唯一性, 消息重发时该字段维持不变
size String 单张图片大小,单位为MB。当opType等于1或2该字段有效
interval String 指令间隔,单位为ms。默认1000,最小1000毫秒,最大60000毫秒,代表间隔n毫秒执行一次截图。 当opType等于2时该字段有效
format String 图片格式,如:png
pixel String 分辨率。默认1920X1080,当opType等于1或2该字段有效
uploadType String 图片上传协议类型,缺省为:http

callback参数说明

参数名 类型 属性名 说明
result Object
code 0:成功
非0:失败
errorMsg 提示信息

示例代码:

Cloudplay.captureGameImage({
    uploadUrl: "",
    cid: 11231,
    opType: 1,
    txId: "43242",
    size: ""
}, function (result) {
});

7.3.4 发送数据到云端剪切板

函数原型:

Cloudplay.sendDataToClipBoard(data);

参数说明

参数名 类型 必填项 说明
data String 发送的数据内容
×

本篇文章对你是否有帮助?

更多建议

请输入您的建议