接口说明

最近更新时间:2025-08-19 11:44:52

我的收藏

接口概览

生命周期接口

方法
描述
init
初始化云渲染 SDK,初始化成功会回调 onInitSuccess。
access
启动云渲染,启动成功会回调 onConnectSuccess。
destroy
立即停止云渲染。
该接口为前端的停止,即 destroy 当前的连接。云端会在自动检测到心跳消失后,释放资源。
reconnect
重连。
由于网络问题导致的中断,SDK 会自动重连。
重连策略:每5秒尝试一次,最多重连5次。
设置 accessToken。
通过 创建安卓实例访问Token 接口获取 AccessToken,可通过该接口设置也可以通过 init 参数传入。

安卓实例操作接口

先通过 TCGSDK.getAndroidInstance() 获取安卓实例,以下为 AndroidInstance 对象接口,接口描述文件可参考 androidInstance.d.ts
const AndroidInstance = TCGSDK.getAndroidInstance();

AndroidInstance.getInstanceImage({instanceId: 'cai-xxx1'});
方法
描述
获取实例截图信息。
upload
上传文件到实例。
获取实例下载地址。
switchIME
切换输入法。
设置设备 GPS 信息。
设置设备分辨率。
paste
粘贴文本。
发送文本到剪切板。
shake
摇一摇。
setSensor
设置设备传感器信息。
发送 App binder 消息。
查询实例属性。
修改实例属性。
查询已安装第三方应用。
修改前台应用保活状态。
查询前台应用保活状态。
卸载应用。
startApp
启动应用。
stopApp
停止应用。
清除应用数据。
enableApp
启用应用。
禁用应用。
摄像头播放媒体文件。
摄像头停止播放媒体文件。
查询当前摄像头媒体播放状态。
摄像头显示图片。
增加后台保活应用。
移除后台保活应用。
覆盖后台保活应用。
查询后台保活应用。
清空后台保活应用。
mute
静音开关。
搜索媒体库文件。
reboot
重启实例。
查询所有应用列表。
关闭应用至后台。
新增应用安装黑名单。
移除应用安装黑名单。
覆盖应用安装黑名单。
查询应用安装黑名单。
清空应用安装黑名单。
获取系统导航栏显示状态。
获取系统媒体音量大小。

音视频控制相关接口

方法
描述
设置 Video 音量。
获取 Video 音量。
playVideo
播放视频。
switchMic
开关麦克风。
开关摄像头。
设置 Video 的旋转角度。

鼠标键盘控制相关接口

方法
描述
发送键盘事件。
发送鼠标事件。
发送 touch 事件。

其他工具方法

方法
描述
获取当前连接 requestId。
推流视频截图。
sendText
聚焦输入框时快速发送内容,会同时粘贴到剪贴板。

Init 方法参数

参数名称
必选
类型
描述
mount
String
页面挂载点的 HTML 元素 ID。
mobileGame
Boolean
true 为使用接入手游/云手机。
androidInstance
Object
{autoRotateOnPC?: boolean;}
在 PC 端自动旋转。
accessToken
Object
{token: String; accessInfo: String}
实例访问 token,通过云 API 获取。
mic
Boolean
是否开启本地麦克风。
camera
Boolean
是否开启本地摄像头。
loadingText
String
加载中的文字提示内容,默认为“正在启动云渲染”。
restartText
String
重新连接的文字提示内容,默认为“重新连接”。

接口详细说明

初始化

初始化(init)云渲染 SDK,初始化成功会回调 onInitSuccess。

输入参数

示例

TCGSDK.init({
mount: 'car-mount-point',
mobileGame: true,
debugSetting: {
showLog: true,
},
accessToken,
loadingText: 'Starting...',
// 连接成功回调
onConnectSuccess: () => {
console.log('onConnectSuccess');
},
// 网络中断/被踢触发此回调
onDisconnect: () => {
console.log('onDisconnect');
},
onInitSuccess: () => {
console.log('%c onInitSuccess', 'color: red');

// single control
TCGSDK.access({
instanceId: instanceIds[0],
groupControl: false,
});
}
});

启动云渲染

启动(access)云渲染,需要 init 内传入 accessToken 或调用 setAccessToken。

输入参数

参数名称
必选
类型
描述
instanceId
String
实例 ID。

示例

TCGSDK.access({instanceId: 'cai-xxxx-xxxx'});

停止云渲染

立即停止(destroy)云渲染,该接口为前端的停止,即 clear 当前的连接(peerConnection)。云端会在自动检测到心跳消失后,释放资源。

输入参数

参数名称
必选
类型
code
Number
message
String

示例

TCGSDK.destroy();

重连

重连(reconnect)接口,也可以设置 *init reconnect* 参数由 SDK 自动调用,或根据 onDisconnect 回调 code,结合自身场景,主动调用该接口。
重连策略:每5秒尝试一次,最多重连5次。

示例

TCGSDK.reconnect();

设置 AccessToken

设置 AccessToken(setAccessToken)。

输入参数

参数名称
必选
类型
accessInfo
String
token
String

示例

TCGSDK.setAccessToken({accessInfo: 'xxx', token: 'xxx'});

获取实例截图信息

获取实例截图信息(getInstanceImage) 。

输入参数

参数名称
必选
类型
描述
instanceId
String
实例 ID。
quality
Number
截图质量,取值范围 0-100,默认 20。
screenshot_width
Number
截图宽度。
screenshot_height
Number
截图高度。

返回值

类型:{ url: string }
参数名称
类型
描述
url
String
截图地址。

示例

const {url} = AndroidInstance.getInstanceImage({instanceId: 'cai-xxx1'});

上传文件到实例

上传文件到实例(upload)。
默认上传到 /sdcard/Download 目录下,可使用 path 指定上传目录(仅支持/sdcard/ 下目录)。

输入参数

参数名称
必选
类型
描述
instanceId
String
实例 ID。
files
Object[]
-
files.file
File
文件。
files.path
String
路径。

返回值

类型:Promise<{Code: number; Message: string; FileStatus: { CloudPath: string; FileName: string }[] | null;}>
参数名称
类型
描述
Code
Number
-
Message
String
-
FileStatus
Object[]
-
FileStatus.CloudPath
String
云端路径。
FileStatus.FileName
String
文件名。

示例

const {Code, Message, FileStatus} = await AndroidInstance.upload({instanceId: 'cai-xxx1', files: [{file: file1, path: '/sdcard/xxx/'}, {file: file2, path: '/sdcard/xxx/'}]});

获取实例下载地址

获取实例下载地址(getInstanceDownloadAddress)。

输入参数

参数名称
必选
类型
描述
instanceId
String
实例 ID。
path
String
下载路径。

返回值

类型:{ address: string }
参数名称
类型
描述
address
String
下载地址。

示例

const {address} = AndroidInstance.getInstanceDownloadAddress({instanceId: 'cai-xxx1', path: '/sdcard/xxx/'});

切换输入法

切换输入法(switchIME)。

输入参数

参数名称
必选
类型
描述
ime
String
cloud:云端输入法。
local: 本地输入法。

示例

AndroidInstance.switchIME({ime: 'local'});

设置设备 GPS 信息

设置设备 GPS 信息(setLocation)。

输入参数

类型:{ [InstanceId: string]: { Longitude: number; Latitude: number } }
参数名称
必选
类型
描述
Longitude
Number
经度。
Latitude
Number
纬度。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.setLocation({'cai-xxx1': {Longitude: 113.32412, Latitude: 23.124124}, 'cai-xxx2': {Longitude: 114.32412, Latitude: 24.124124}})
console.log(res['cai-xxx1']);

设置设备分辨率

设置设备分辨率(setResolution)。

输入参数

类型:{ [InstanceId: string]: { Width: number; Height: number; DPI?: number } };
参数名称
必选
类型
描述
Width
Number
宽。
Height
Number
高。
DPI
Number
-

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.setResolution({'cai-xxx1': {Width: 720, Height: 1080}, {'cai-xxx2': {Width: 720, Height: 1080}});
console.log(res['cai-xxx1']);

粘贴文本

粘贴文本(paste)。

输入参数

类型:{ [InstanceId: string]: { Text: string } }
参数名称
必选
类型
描述
Text
String
文本。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.paste({'cai-xxx1': {Text: 'abc'}, {'cai-xxx2': {Text: '123'}});
console.log(res['cai-xxx1']);

发送文本到剪切板

发送文本到剪切板(sendClipboard)。

输入参数

类型:{ [InstanceId: string]: { Text: string } }
参数名称
必选
类型
描述
Text
String
文本。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.sendClipboard({'cai-xxx1': {Text: 'abc'}, {'cai-xxx2': {Text: '123'}});
console.log(res['cai-xxx1']);

摇一摇

摇一摇(shake)。

输入参数

类型:{ [InstanceId: string]: { } }

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.shake({'cai-xxx1': {}, {'cai-xxx2': {}});
console.log(res['cai-xxx1']);

设置设备传感器信息

设置设备传感器信息(setSensor)。

输入参数

类型:{ [InstanceId: string]: { Type: 'accelerometer' | 'gyroscope'; Values: number[] } }
参数名称
必选
类型
描述
Type
String
传感器 accelerometer(加速器),gyroscope(陀螺仪)。
Values
String[]
传感器对应的值,数组长度为 3,分别表示 x/y/z 轴的值。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.setSensor({'cai-xxx1': {Type: 'accelerometer', Values: [10, 10, 10]}, {'cai-xxx2': {Type: 'gyroscope', Values: [10, 10, 10]}});
console.log(res['cai-xxx1']);

发送 App binder 消息

发送 App binder 消息(sendTransMessage)。

输入参数

类型:{ [InstanceId: string]: { PackageName: string; Msg: string } }
参数名称
必选
类型
描述
PackageName
String
包名。
Msg
String
消息。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.sendTransMessage({'cai-xxx1': {PackageName: 'com.example.myapplication', Msg: 'abc123'}});
console.log(res['cai-xxx1']);

查询实例属性

查询实例属性(describeInstanceProperties)。

输入参数

类型:{ [InstanceId: string]: { }

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.describeInstanceProperties({'cai-xxx1': {}, {'cai-xxx2': {}});
console.log(res['cai-xxx1']);

修改实例属性

修改实例属性(modifyInstanceProperties)

输入参数

类型:
{ [InstanceId: string]: Partial<InstanceProperties> }

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.ModifyInstanceProperties({'cai-xxx1': {
DeviceInfo: {
Brand: 'Samsung',
Model: 'Galaxy S24',
},
ProxyInfo: {
Enabled: true,
Protocol: 'socks5',
Host: 'proxy.example.com',
Port: 1080,
User: 'user123',
Password: 'pass123',
},
GPSInfo: {
Longitude: 121.4737,
Latitude: 31.2304,
},
SIMInfo: {
State: 1,
PhoneNumber: '+8613812345678',
IMSI: '460001234567890',
ICCID: '89860123456789012345',
},
LocaleInfo: {
Timezone: 'Asia/Shanghai',
},
LanguageInfo: {
Language: 'zh',
Country: 'CN',
},
ExtraProperties: [
{
Key: 'custom_property1',
Value: 'value1',
},
{
Key: 'custom_property2',
Value: 'value2',
},
]
}})
console.log(res['cai-xxx1']);

查询已安装第三方应用

查询已安装第三方应用(listUserApps)。

输入参数

类型:{ [InstanceId: string]: { }

返回值

类型:Promise<ListUserAppsResponse>
参数名称
类型
描述
AppList
Object[]
-
AppList.FirstInstallTimeMs
Number
首次安装时间。
AppList.Label
String
标签。
AppList.LastUpdateTimeMs
Number
最近更新时间。
AppList.PackageName
String
包名。
AppList.VersionName
String
版本名。

示例

const res = await AndroidInstance.listUserApps({'cai-xxx1': {}, {'cai-xxx2': {}})
console.log(res['cai-xxx1']);

修改前台应用保活状态

修改前台应用保活状态(modifyKeepFrontAppStatus)。

输入参数

类型:{ [InstanceId: string]: { PackageName: string; Enable: boolean; RestartInterValSeconds: number; } }
参数名称
必选
类型
描述
PackageName
String
包名。
Enable
Boolean
-
RestartInterValSeconds
Number
重新拉起最长间隔。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.modifyKeepFrontAppStatus({'cai-xxx1': {"PackageName": "com.example.app", "Enable": true, "RestartInterValSeconds": 5}});
console.log(res['cai-xxx1']);

查询前台应用保活状态

查询前台应用保活状态(describeKeepFrontAppStatus)。

输入参数

类型:{ [InstanceId: string]: { }

返回值

类型:Promise<{ PackageName: string; Enable: boolean; RestartInterValSeconds: number }>;
参数名称
类型
描述
PackageName
String
包名。
Enable
Boolean
-
RestartInterValSeconds
String
重新拉起最长间隔。

示例

const res = await AndroidInstance.describeKeepFrontAppStatus({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

卸载应用

卸载应用(unInstallByPackageName)。

输入参数

类型:{ [InstanceId: string]: { PackageName: string; } }
参数名称
必选
类型
描述
PackageName
String
包名。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.unInstallByPackageName({'cai-xxx1': {"PackageName": "com.unwanted.app"}});
console.log(res['cai-xxx1']);

启动应用

启动应用(startApp)。

输入参数

类型:{ [InstanceId: string]: { PackageName: string; ActivityName: string } }
参数名称
必选
类型
描述
PackageName
String
包名。
ActivityName
String
-

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.startApp({'cai-xxx1': {"PackageName": "com.launch.app", "ActivityName": "MainActivity"}});
console.log(res['cai-xxx1']);

停止应用

停止应用(stopApp)。

输入参数

类型:{ [InstanceId: string]: { PackageName: string; } }
参数名称
必选
类型
描述
PackageName
String
包名。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.stopApp({'cai-xxx1': {"PackageName": "com.running.app"}});
console.log(res['cai-xxx1']);

清除应用数据

清除应用数据(clearAppData)。

输入参数

类型:{ [InstanceId: string]: { PackageName: string; } }
参数名称
必选
类型
描述
PackageName
String
包名。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.clearAppData({'cai-xxx1': {"PackageName": "com.data.app"}});
console.log(res['cai-xxx1']);

启用应用

启用应用(enableApp)。

输入参数

类型:{ [InstanceId: string]: { PackageName: string; } }
参数名称
必选
类型
描述
PackageName
String
包名。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.enableApp({'cai-xxx1': {"PackageName": "com.data.app"}});
console.log(res['cai-xxx1']);

禁用应用

禁用应用(disableApp)。

输入参数

类型:{ [InstanceId: string]: { PackageName: string; } }
参数名称
必选
类型
描述
PackageName
String
包名。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.disableApp({'cai-xxx1': {"PackageName": "com.data.app"}});
console.log(res['cai-xxx1']);

摄像头播放媒体文件

摄像头播放媒体文件(startCameraMediaPlay)

输入参数

类型:{ [InstanceId: string]: { FilePath: string; Loops: number }; }
参数名称
必选
类型
描述
FilePath
String
文件路径。
Loops
String
循环次数,负数表示无限循环。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.startCameraMediaPlay({'cai-xxx1': {"FilePath": "/sdcard/video.mp4", "Loops": 3}});
console.log(res['cai-xxx1']);

摄像头停止播放媒体文件

摄像头停止播放媒体文件(stopCameraMediaPlay)。

输入参数

类型:{ [InstanceId: string]: { }; }

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.stopCameraMediaPlay({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

查询当前摄像头媒体播放状态

查询当前摄像头媒体播放状态(describeCameraMediaPlayStatus)

输入参数

类型:{ [InstanceId: string]: { }; }

返回值

类型:Promise<{ PackageName: string; Enable: boolean; RestartInterValSeconds: number }>;
参数名称
类型
描述
FilePath
String
包名。
Loops
Number
循环次数,负数表示无限循环。

示例

const res = await AndroidInstance.describeCameraMediaPlayStatus({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

摄像头显示图片

摄像头显示图片(displayCameraImage)。

输入参数

类型:{ [InstanceId: string]: { FilePath: string; }; }
参数名称
必选
类型
描述
FilePath
String
文件路径。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.displayCameraImage({'cai-xxx1': {"FilePath": "/sdcard/image.jpg"}});
console.log(res['cai-xxx1']);

增加后台保活应用

增加后台保活应用(addKeepAliveList)。

输入参数

类型:{ [InstanceId: string]: { AppList: string[] } }
参数名称
必选
类型
AppList
String[]

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.addKeepAliveList({'cai-xxx1': {"AppList": ["com.wechat", "com.alipay", "com.dingtalk"]}});
console.log(res['cai-xxx1']);

移除后台保活应用

移除后台保活应用(removeKeepAliveList)。

输入参数

类型:{ [InstanceId: string]: { AppList: string[] } }
参数名称
必选
类型
AppList
String[]

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.removeKeepAliveList({'cai-xxx1': {"AppList": ["com.wechat", "com.alipay", "com.dingtalk"]}});
console.log(res['cai-xxx1']);

覆盖后台保活应用

覆盖后台保活应用(setKeepAliveList)。

输入参数

类型:{ [InstanceId: string]: { AppList: string[] } }
参数名称
必选
类型
AppList
String[]

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.setKeepAliveList({'cai-xxx1': {"AppList": ["com.wechat", "com.alipay", "com.dingtalk"]}});
console.log(res['cai-xxx1']);

查询后台保活应用

查询后台保活应用(describeKeepAliveList)。

输入参数

类型:{ [InstanceId: string]: { }; }

返回值

类型:Promise<{ AppList: string[] }>;
参数名称
类型
AppList
String[]

示例

const res = await AndroidInstance.describeKeepAliveList({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

清空后台保活应用

清空后台保活应用(clearKeepAliveList)。

输入参数

类型:{ [InstanceId: string]: { }; }

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.clearKeepAliveList({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

静音开关

静音开关(mute)。

输入参数

类型:{ [InstanceId: string]: { Mute: boolean } }
参数名称
必选
类型
描述
Mute
Boolean
静音。

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.mute({'cai-xxx1': {Mute: true}});
console.log(res['cai-xxx1']);

媒体库文件搜索

媒体库文件搜索(mediaSearch)。

输入参数

类型:{ [InstanceId: string]: { Keyword: string } }
参数名称
必选
类型
Keyword
String

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.mediaSearch({'cai-xxx1': {"Keyword": "abc"}});
console.log(res['cai-xxx1']);

重启实例

重启实例(reboot)。

输入参数

类型:{ [InstanceId: string]: { }; }

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.reboot({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

查询所有应用列表

查询所有应用列表(listAllApps)。

输入参数

类型:{ [InstanceId: string]: { }

返回值

类型:Promise<ListUserAppsResponse>
参数名称
类型
描述
AppList
Object[]
应用列表。
AppList.FirstInstallTimeMs
Number
首次安装时间。
AppList.Label
String
标签。
AppList.LastUpdateTimeMs
Number
最近更新时间。
AppList.PackageName
String
包名。
AppList.VersionName
String
版本名。

示例

const res = await AndroidInstance.listAllApps({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

关闭应用至后台

关闭应用至后台(moveAppBackground)。

输入参数

类型:{ [InstanceId: string]: { }; }

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.moveAppBackground({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

新增应用安装黑名单

新增应用安装黑名单(addAppInstallBlackList)。

输入参数

类型:{ [InstanceId: string]: { AppList: string[] } }
参数名称
必选
类型
AppList
String[]

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.addAppInstallBlackList({'cai-xxx1': {"AppList": ["com.wechat", "com.alipay", "com.dingtalk"]}});
console.log(res['cai-xxx1']);

移除应用安装黑名单

移除应用安装黑名单(removeAppInstallBlackList)。

输入参数

类型:{ [InstanceId: string]: { AppList: string[] } }
参数名称
必选
类型
AppList
String[]

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.removeAppInstallBlackList({'cai-xxx1': {"AppList": ["com.wechat", "com.alipay", "com.dingtalk"]}});
console.log(res['cai-xxx1']);

覆盖应用安装黑名单

覆盖应用安装黑名单(setAppInstallBlackList)。

输入参数

类型:{ [InstanceId: string]: { AppList: string[] } }
参数名称
必选
类型
AppList
String[]

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.setAppInstallBlackList({'cai-xxx1': {"AppList": ["com.wechat", "com.alipay", "com.dingtalk"]}});
console.log(res['cai-xxx1']);

查询应用安装黑名单

查询应用安装黑名单(describeAppInstallBlackList)。

输入参数

类型:{ [InstanceId: string]: { }; }

返回值

类型:Promise<{ AppList: string[] }>;
参数名称
类型
AppList
String[]

示例

const res = await AndroidInstance.describeAppInstallBlackList({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

清空应用安装黑名单

清空应用安装黑名单(clearAppInstallBlackList)。

输入参数

类型:{ [InstanceId: string]: { }; }

返回值

类型:Promise<BatchTaskResponse>

示例

const res = await AndroidInstance.clearAppInstallBlackList({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

获取系统导航栏显示状态

获取系统导航栏显示状态(getNavVisibleStatus)。

输入参数

类型:{ [InstanceId: string]: { }; }

返回值

类型:Promise<{ Visible: boolean; }>;
参数名称
类型
Visible
Boolean

示例

const res = await AndroidInstance.getNavVisibleStatus({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

获取系统媒体音量大小

获取系统媒体音量大小(getSystemMusicVolume)。

输入参数

类型:{ [InstanceId: string]: { }; }

返回值

类型:Promise<{ Volume: number; }>;
参数名称
类型
描述
Volume
Number
音量。

示例

const res = await AndroidInstance.getSystemMusicVolume({'cai-xxx1': {}});
console.log(res['cai-xxx1']);

批量操作返回值

批量操作返回值(BatchTaskResponse)。

返回值

类型:[InstanceId: string]: {Code: number; Msg: string;};
参数名称
类型
描述
Code
Number
Code 为 0 表示成功,其他值表示失败。
Code: 10001, Msg: "invalid param"。
Code: 10002, Msg: "invalid token"。
Code: 10003, Msg: "invalid operate"。
Msg
String
-

实例属性

实例属性(InstanceProperties)。
参数名称
类型
描述
DeviceInfo
Object
{ Brand: string; Model: string }
GPSInfo
Object
{ Longitude: number; Latitude: number };
LanguageInfo
Object
{ Language: string; Country: string };
LocaleInfo
Object
{ Timezone: string };
ProxyInfo
Object
{ Enabled: boolean; Protocol: string; Host: string; Port: number; User: string; Password: string };
SIMInfo
Object
{ State: number; PhoneNumber: string; IMSI: string; ICCID: string };
ExtraProperties
Object
{ Key: string; Value: string }[];

设置 video 音量

设置 video 音量(setVideoVolume)。

输入参数

参数名称
必选
类型
描述
value
Number
音量 [0-1]。

示例

TCGSDK.setVideoVolume(0);

获取 video 音量

获取 video 音量(getVideoVolume)。

示例

const volume = TCGSDK.getVideoVolume();

播放视频

播放视频(playVideo)。

输入参数

参数名称
必选
类型
描述
status
String
'play' | 'pause'

示例

TCGSDK.playVideo('play');

开关麦克风

开关麦克风(switchMic)。

输入参数

参数名称
必选
类型
描述
status
String
'open' | 'close'
profile
Boolean|MicProfileConstraints
MicProfileConstraints {
sampleRate?: number; // 默认值 44100
echoCancellation?: ConstrainBoolean; // 回声消除 默认值 true
noiseSuppression?: ConstrainBoolean; // 降噪 默认值 true
autoGainControl?: ConstrainBoolean; // 增益 默认值 true
deviceId?: string; // 设备id,可以通过 getDevices 接口获取, 默认采用系统自选设备
}

返回值

类型:Promise<{ code: 0 | 1; msg: string; userMedia: MediaStream }>;
参数名称
类型
描述
code
Number
code 为 0 表示成功,其他值表示失败。
msg
String
-
userMedia
MediaStream
获取的媒体信息。

示例

TCGSDK.switchMic({status: 'open'});

开关摄像头

开关摄像头(switchCamera)。

输入参数

参数名称
必选
类型
描述
status
String
'open' | 'close'
profile
Boolean | CameraProfileConstraints |
CameraProfileType
CameraProfileConstraints {
/**
* 默认值 1280,传入 null 则采用系统默认选择值
*/
width?: number | null;
/**
* 默认值 720,传入 null 则采用系统默认选择值
*/
height?: number | null;
frameRate?: number;
/**
* @deprecated
*/
bitrate?: number;
/**
* input 的设备id,可以通过 getDevices 接口获取, 默认采用系统自选设备。
*
* 移动端可传入 'user' | 'environment', 来区分前置/后置摄像头
*/
deviceId?: string | 'user' | 'environment';
}

CameraProfileType = '120p' | '180p' | '240p' | '360p' | '480p' | '720p' | '1080p';

返回值

类型:Promise<{ code: 0 | 1; msg: string; userMedia: MediaStream }>;
参数名称
类型
描述
code
Number
code 为 0 表示成功,其他值表示失败。
msg
String
-
userMedia
MediaStream
获取的媒体信息。

示例

TCGSDK.switchCamera({status: 'open'});
TCGSDK.switchCamera({status: 'close'});
// 移动端打开后置摄像头
TCGSDK.switchCamera({ status: 'open', profile: { deviceId: 'environment' } });

设置 video 的旋转角度

设置 video 的旋转角度(setVideoOrientation)。

输入参数

参数名称
必选
类型
描述
deg
Number
旋转角度当前只支持 0/90/180/270。
rotateContainer
Boolean
是否旋转整个 HTML 视图,默认值 true。
rotateMountPoint
Boolean
是否旋转 mountPoint 节点,默认值 false。

示例

// 旋转 HTML 文档
TCGSDK.setVideoOrientation({ deg: 90, rotateContainer: true });
// 旋转 MountPoint
TCGSDK.setVideoOrientation({ deg: 90, rotateMountPoint: true });

发送键盘事件

发送键盘事件(sendKeyboardEvent),该方法调用通常是成对出现(像正常打字,通常是 down/up 组合)。
键盘的键位码可通过 KeyCode 查询,对于云手游常用按键 KeyCode 是:
KEY_BACK = 158
KEY_MENU = 139
KEY_HOME = 172
KEYCODE_VOLUME_UP = 0x3a
KEYCODE_VOLUME_Down = 0x3b

输入参数

参数名称
必选
类型
描述
key
Number
对应的 Code 码。
down
Boolean
是否是按下状态。
location
Number
1为左键,2为右键。

示例

// 按下时
TCGSDK.sendKeyboardEvent({key: 32, down: true});
// 抬起时
TCGSDK.sendKeyboardEvent({key: 32, down: false});

发送鼠标事件

发送鼠标事件(sendMouseEvent)。

输入参数

参数名称
必选
类型
描述
type
String
鼠标事件类型。
mouseleft
mouseright
mousemiddle
mouseforward
mousebackward
mousescroll
mousemove
mousedeltamove
down
Boolean
是否是按下状态(就像正常鼠标点击,通常是 down/up 组合)。
delta
Number
鼠标滚轮,通常传 1/-1。

示例

// 鼠标左键按下
TCGSDK.sendMouseEvent({type: 'mouseleft', down: true});
// 鼠标左键抬起
TCGSDK.sendMouseEvent({type: 'mouseleft', down: false});

发送 touch 事件

发送 touch 事件(mobileTouchMove)。
根据 onVideoStreamConfigChange 回调,可拿到云端屏幕分辨率,x/y 坐标是相对于该分辨率的 width/height 的位置。

输入参数

参数名称
必选
类型
描述
finger_id
Number
touch finger id
event_type
Number
touch 事件类型。
touchstart - 0
touchmove - 1
touchend - 2
touchcancel - 2
x
Number
相对 x 轴坐标。
y
Number
相对 y 轴坐标。

示例

// start/end 成对发送
TCGSDK.mobileTouchMove({finger_id: 0, event_type: 0, x: 111, y: 1102 });
TCGSDK.mobileTouchMove({finger_id: 0, event_type: 2, x: 111, y: 1102 });

获取当前连接 requestId

获取当前连接 requestId(getRequestId),在调用 TCGSDK.start() / TCGSDK.access() 后生效。

示例

const requestId = TCGSDK.getRequestId();

推流视频截图

推流视频截图(screenShot)。

输入参数

参数名称
必选
类型
描述
name
String
截图名称,默认为 `tcgsdk-${+new Date()}`。
width
Number
截图宽度,默认取视频流宽度。
height
Number
截图高度,默认取视频流高度。

示例

TCGSDK.screenShot({name: 'abc123', width: 720, height: 1280});

快速发送内容

快速发送内容(sendText),会同时粘贴到剪贴板。

输入参数

参数名称
必选
类型
描述
content
String
需要发送的内容。

示例

TCGSDK.sendText('abc');