本文提供声网远程控制(RDC)SDK API 的关键类型参考,包括类、结构体、枚举值等。
class IRemoteControlEngine {
protected:
virtual ~IRemoteControlEngine() {}
}
IRemoteControlEngine
类提供了 App 调用的主要接口方法,是声网 RDC SDK 的基础接口类。
调用 createRDCEngine
方法创建一个 IRemoteControlEngine
对象并调用这个对象的方法可以激活声网 RDC SDK 的功能。
class IRemoteControlEventHandler {
public:
virtual ~IRemoteControlEventHandler() {}
}
IRemoteControlEventHandler
接口类用于 SDK 向 App 发送回调事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。
struct Configuration {
IRemoteControlEventHandler* eventHandler;
const char* appId;
const char* logFilePath;
const char* logFileName;
int logFileMaxSize;
LOG_LEVEL logLevel;
Role role;
HWND hwnd;
}
初始化声网 RDC SDK 时的配置信息。
参数 | 类型 | 描述 |
---|---|---|
eventHandler |
(必填)IRemoteControlEventHandler | 声网 RDC SDK 回调类,详见 IRemoteControlEventHandler 。 |
appId |
(必填)Char | 声网为 app 开发者签发的 App ID,详见获取 App ID。IRemoteControlEngine 。release 销毁当前 IRemoteControlEngine ,再调用 createRDCEngine 和 initialize 重新创建 IRemoteControlEngine 。 |
logFilePath |
(可选)Char | 日志文件的绝对路径。默认为当前工作路径。请确保你指定的目录可写。 |
logFileName |
(可选)Char | 日志文件名称加后缀。必须在 255 个字符内,不区分大小写,默认为 rdc.log 。 |
logFileMaxSize |
(可选)Int | 单个日志文件体积上限,单位为 KB。不设置、设置为空或负值均默认为 0,即无上限。 |
logLevel |
(可选)LOG_LEVEL | 声网 RDC SDK 的日志输出等级。默认输出所有级别的日志。详见 LOG_LEVEL 。 |
role |
(必填)Role | 用户角色类型。详见 Role 。 |
hwnd |
HWND | 远程控制视图区域的窗口句柄,用于渲染远程控制视图窗口。详见微软官方文档。role 为 HOST ,则必须传入 hwnd 。role 为 CONTROLLED ,则无需传入 hwnd 。 |
声网 RDC SDK 的回调事件。
预留参数。
发生错误回调。错误码及错误信息详见 EVT_ERROR
。
预留参数。
登录声网 RDC 系统回调。
0(ERR OK):登录成功。
≠0:登录失败。错误码及错误信息详见登录错误码。
登出声网 RDC 系统回调。
0(ERR OK)
:登出成功。
≠0
:登出失败。错误码及错误信息详见登出错误码。
加入频道回调。
0(ERR OK)
:加入频道成功。
≠0
:加入频道失败。错误码及错误信息详见加入频道错误码。
离开频道回调。
0(ERR OK)
:离开频道成功。
≠0
:离开频道失败。错误码及错误信息详见离开频道错误码。
SDK 与声网 RDC 系统的连接状态回调。连接状态如下:
code | message | 描述 |
---|---|---|
0 |
Uninitialize |
SDK 尚未初始化或用户已登出。 |
1 |
Initialized |
SDK 已初始化。 |
2 |
Connected |
SDK 已连接声网 RDC 系统。 |
3 |
Disconnect |
SDK 尚未连接到声网 RDC 系统,或由于网络问题连接中断。 |
发送点对点指令失败回调。错误码及错误信息详见发送点对点指令错误码。
主控端上传文件到 RDC 服务器回调。
该回调用于主控端到被控端的文件、文本传输。当主控端上传文件到 RDC 服务器后,主控端触发该回调。
0(ERR OK)
:文件上传成功。
≠0
:文件上传失败。错误码及错误信息详见文件上传错误码。
被控端从 RDC 服务器下载文件到临时文件夹回调。
该回调用于主控端到被控端的文件、文本传输。当被控端从 RDC 服务器下载主控端上传的文件至临时文件夹时,被控端触发该回调。
0(ERR OK)
:文件下载成功。
≠0
:文件下载失败。错误码及错误信息详见文件下载错误码。
主控端将本地文件或文本粘贴到被控端目标位置成功回调。
该回调用于主控端到被控端的文件、文本传输。当主控端上传文件到 RDC 服务器后,被控端从 RDC 服务器下载该文件到临时文件夹,再粘贴到到目标位置时,主控端和被控端均触发该回调。
回调内容如下:
code
:0
,代表成功粘贴文件或文本到目标位置。message
:JSON 格式的消息内容。请求远程控制回调,回调内容如下:
code
:0
,代表方法调用成功。
message
:JSON 格式的消息内容。示例如下:
{
"peer": "userId", // 对端登录的用户 ID
"answer": false // 被控端拒绝主控端的控制请求
}
主控端开始控制被控端计算机回调。当主控端开始控制被控端计算机,被控端收到该回调。
code
:0,代表方法调用成功。
message
:JSON 格式的消息内容。示例如下:
{
"hold": true // 主控端成功控制被控端计算机
}
停止远程控制回调。
code
:0
,代表方法调用成功。
message
:JSON 格式的消息内容。示例如下:
{
"peer":"userId" // 对端登录的用户 ID
}
光标状态变化回调。当被控端光标状态发生变化时,频道内除主控端和被控端以外的所有用户收到该回调。
code
:0,代表方法调用成功。message
:JSON 格式的消息内容。示例如下:{
"cursor": 0, // 光标状态,详见 CursorState。
"x": 0, // 以控制区域左上角为原点,鼠标在控制视图区域所在位置的横向位移。
"y": 0, // 以控制区域左上角为原点,鼠标在控制视图区域所在位置的纵向位移。
"peer": "userId" // 主控端登录的用户 ID。
}
光标状态变化回调。当被控端光标状态发生变化时,主控端收到该回调。
code
:0,代表方法调用成功。
message
:JSON 格式的消息内容。示例如下:
{
"cursor": 0, // 光标状态,详见 CursorState。
"x": 0, // 以控制区域左上角为原点,鼠标在控制视图区域所在位置的横向位移。
"y": 0, // 以控制区域左上角为原点,鼠标在控制视图区域所在位置的纵向位移。
"peer": "userId" // 被控端登录的用户 ID。
}
日志输出等级。
枚举值 | 描述 |
---|---|
LOG_TRACE |
(默认)0 :输出所有级别的日志。 |
LOG_DEBUG |
1 :输出 DEBUG、ERROR、WARN、INFO 级别的日志。声网推荐你将日志级别设为该等级。 |
LOG_INFO |
2 :输出 ERROR、WARN、INFO 级别的日志。 |
LOG_WARN |
3 :输出 ERROR、WARN 级别的日志。 |
LOG_ERROR |
4 :输出 ERROR 级别的日志。 |
用户角色类型。
枚举值 | 描述 |
---|---|
HOST |
1 :主控端 |
CONTROLLED |
2 :被控端 |
光标状态。
枚举值 | 描述 |
---|---|
枚举值 | 描述 |
ARROW |
0 :箭头 |
IBEAM |
1 :文本选择 |
WAIT |
2 :等待 |
CROSS |
3 :十字 |
UPARROW |
4 :向上箭头 |
SIZENWSE |
5 :双箭头指向西北和东南 |
SIZENESW |
6 :双箭头指向东北和西南 |
SIZEWE |
7 :双箭头指向东西 |
SIZENS |
8 :双箭头指向南北 |
SIZEALL |
9 :四向箭头指向东、西、南、北 |
FORBID |
10 :禁止 |
HAND |
11 :手型 |
APPSTARTING |
12 :应用程序启动 |
HELP |
13 :帮助 |