本文提供声网远程控制(RDC)SDK API 的关键类型参考,包括类、枚举值。
该类包含远程控制应用程序调用的主要方法。调用 create
方法创建一个 AgoraRemoteDesktopControl
实例并调用这个实例的方法可以激活声网 RDC SDK 的功能。
export interface RDCDisplayConfiguration {
width: number;
height: number;
bitrate: number;
frameRate: number;
}
被控端屏幕流视频采集的编码配置。
参数 | 类型 | 描述 |
---|---|---|
width |
(可选)Number | 屏幕流视频的宽度。单位:像素。默认值为 1920 。 |
height |
(可选)Number | 屏幕流视频的高度。单位:像素。默认值为 1080 。 |
frameRate |
(可选)Number | 屏幕流视频的帧率。单位为 fps。默认值为 10 。对于不同的 RDC 实例,设置要求如下:15 。60 ,可选值为 60 、30 、15 。 |
bitrate |
(可选)Number | 屏幕流视频的码率。单位为 Kbps。默认值为 2000 Kbps。 |
export interface RDCDisplay {
id: { id: number } | RDCRectangle | string;
width: number;
height: number;
thumbnail: string;
}
被控端屏幕的显示配置。
参数 | 类型 | 描述 |
---|---|---|
id |
(必填)
|
屏幕 ID。通过该参数指定要显示的屏幕。通过 getDisplays 方法获取所有屏幕 ID。 |
height |
(必填)Number | 屏幕显示区域的高。单位:像素。 |
width |
(必填)Number | 屏幕显示区域的宽。单位:像素。 |
thumbnail |
(可选)String | 屏幕显示的缩略图 blob URL。 |
export interface RDCRectangle {
x: number;
y: number;
width: number;
height: number;
}
(仅适用于 Windows 平台)被控端屏幕显示区域相对于整个屏幕或窗口的位置。
参数 | 类型 | 描述 |
---|---|---|
x |
(必填)Number | 相对于左上角的横向偏移。 |
y |
(必填)Number | 相对于左上角的纵向偏移。 |
height |
(必填)Number | 显示区域的高。单位:像素。 |
width |
(必填)Number | 显示区域的宽。单位:像素。 |
export interface RDCOptions {
appId: string;
role: RDCRoleType;
logLevel?: LogLevel;
logPath?: string;
}
远程控制应用程序的配置。
参数 | 类型 | 描述 |
---|---|---|
appId |
(必填)String | 声网为 app 开发者签发的 App ID,详见获取 App ID。AgoraRemoteDesktopControl 实例。dispose 销毁当前 AgoraRemoteDesktopControl 实例,并在 dispose 成功返回后,再调用 create 重新创建 AgoraRemoteDesktopControl 实例。 |
role |
(必填)RDCRoleType | 用户角色类型。详见 RDCRoleType 。 |
logLevel |
(可选)LogLevel | 日志级别。(默认)DEBUG :输出所有的 API 日志。如果你想获取最完整的日志,可以将日志级别设为该等级。INFO : 输出 FATAL、ERROR、WARNING、INFO 级别的日志。声网推荐你将日志级别设为该等级。WARNING :输出 FATAL、ERROR、WARNING 级别的日志。在生产环境中,请将日志设置为高于 WARNING 的级别。ERROR :输出 FATAL、ERROR 级别的日志。FATAL :输出 FATAL 级别的日志。 |
logPath |
(可选)String | 日志文件的完整路径。默认位于当前工作路径下。声网推荐设置如下:'./' 。${window.process.env.HOME}/Library/Logs/YourAppName ,请确保你指定的目录可写。 |
export interface RDCThresholdOptions {
mouseEventsThreshold?: number;
keyboardEventsThreshold?: number;
}
缓存鼠标和键盘事件时间间隔的配置。
参数 | 类型 | 描述 |
---|---|---|
mouseEventsThreshold |
(可选)Number | 收集鼠标事件的时间阈值。单位:毫秒,默认为 100 ms,取值范围 [30,300]。 |
keyboardEventsThreshold |
(可选)Number | 收集键盘事件的时间阈值。单位:毫秒,默认值为 100,取值范围 [30,300]。 |
export enum RDCRoleType {
HOST = 1,
CONTROLLED = 2,
}
用户角色类型。
枚举值 | 描述 |
---|---|
HOST |
1 :主控端 |
CONTROLLED |
2 :被控端 |
export enum RDCRemotelyPastingStatus {
STARTING,
TRANSMITTED,
SUCCEEDED,
FAILED,
}
文件或文本的粘贴状态。
枚举值 | 描述 |
---|---|
STARTING |
开始粘贴内容。 |
TRANSMITTED |
内容已被传输到被控端。 |
SUCCEEDED |
内容已被成功粘贴。 |
FAILED |
粘贴内容失败。 |
export enum RDCEngineState {
INITIALIZED = 1,
LOGGED_IN = 2,
LOGGED_OUT = 3,
CONNECTED = 4,
DISCONNECT = 5,
}
AgoraRemoteDesktopControl
实例状态。
枚举值 | 描述 |
---|---|
INITIALIZED |
1:SDK 已初始化。 |
LOGGED_IN |
2:已登录 RTM 系统。 |
LOGGED_OUT |
3:已登出 RTM 系统。 |
CONNECTED |
4:SDK 已连接 RTM 系统。 |
DISCONNECT |
5:SDK 已与 RTM 系统断开连接。 |
export enum RDCRemotelyPastingCodes {
SUCCEEDED = 0,
FAILURE = 1,
TIMEOUT = 3,
SIZE_OVERFLOW = 4,
CONCURRENCY_LIMIT_EXCEEDED = 5,
NOT_INITIALIZED = 101,
NOT_LOGGED_IN = 102,
}
粘贴文件或文本的状态码。
状态码 | 描述 |
---|---|
SUCCEEDED |
0:粘贴文件或文本成功。 |
FAILURE |
1:通用错误。粘贴文件或文本失败。请检查该文件是否存在,以及你是否可以访问该文件。 |
TIMEOUT |
3:粘贴文件或文本超时。 |
SIZE_OVERFLOW |
4:粘贴的文件大小超过 30 MB。 |
CONCURRENCY_LIMIT_EXCEEDED |
5:文件同时下载数超过 9 个的上限(上传任务和下载任务一并计算)。 |
UNSUPPORTED_FILE_TYPE |
99:待粘贴文件为不支持的类型。目前声网支持任意格式的文件,但不支持粘贴文件夹。 |
NOT_INITIALIZED |
101:SDK 尚未初始化。 |
NOT_LOGGED_IN |
102:未登录 RTM 系统。请调用 join 方法重新登录。 |
export enum RDCJoinErrorCode {
UNKNOWN_ERROR = 1,
SERVER_REJECTED = 2,
INVALID_LOGIN_ARGUMENT = 3,
INVALID_APP_ID = 4,
INVALID_TOKEN = 5,
TOKEN_EXPIRED = 6,
AUTHORIZE_FAIL = 7,
DUPLICATED_LOGIN = 8,
TIMEOUT = 9,
LOGIN_TOO_OFTEN = 10,
NOT_INITIALIZED = 101,
}
加入频道错误码。
错误码 | 描述 |
---|---|
UNKNOWN_ERROR |
1:未知错误。 |
SERVER_REJECTED |
2:此用户被服务器禁止。 |
INVALID_LOGIN_ARGUMENT |
3:加入频道时参数无效。 |
INVALID_APP_ID |
4:无效的 App ID。 |
INVALID_TOKEN |
5:无效的 TOKEN。 |
TOKEN_EXPIRED |
6:Token 已过期。 |
AUTHORIZE_FAIL |
7:预留错误码。 |
DUPLICATED_LOGIN |
8:重复加入频道。 |
TIMEOUT |
9:加入频道超时。目前的超时设置为 10 秒。超时后你需要再次加入频道。 |
LOGIN_TOO_OFTEN |
10:加入频道过于频繁。超过 2 次每秒的上限。 |
NOT_INITIALIZED |
101:SDK 尚未初始化。 |