|
远程协助分两部分:
1、远程桌面视频的截取、传输及显示,可参考:(a、AnyChat新增屏幕共享(远程桌面)功能;b、新增多路音视频流输入功能,实现本地摄像头视频与远程桌面同步传输)
2、本地的键盘、鼠标事件传输到远程并执行。
一、开放API接口
本次开放的API接口属于后者,即本地键盘、鼠标事件的传输与执行。
开放的API接口如下:- // 内核参数定义(API:BRAC_SetSDKOption、BRAC_GetSDKOption 传入参数)
- #define BRAC_SO_CORESDK_REMOTEASSISTHWND 214 ///< 远程协助窗口句柄
- #define BRAC_SO_CORESDK_REMOTEASSISTXPOS 215 ///< 远程协助窗口滚动条位置(X)
- #define BRAC_SO_CORESDK_REMOTEASSISTYPOS 216 ///< 远程协助窗口滚动条位置(Y)
- // 视频呼叫标志定义(API:BRAC_VideoCallControl 传入参数)
- #define BRAC_VIDEOCALL_FLAGS_ASSISTREQ 0x0100 ///< 请求目标用户远程协助
- #define BRAC_VIDEOCALL_FLAGS_CONTROLREQ 0x0200 ///< 请求控制目标用户
复制代码 二、工作流程
1、使用视频呼叫API接口:BRAC_VideoCallControl建立通道(参考:AnyChat视频呼叫业务逻辑详解);
2、如果是希望本地被远程控制(请求目标用户远程协助),则调用BRAC_VideoCallControl发起呼叫时,dwFlags=BRAC_VIDEOCALL_FLAGS_ASSISTREQ;
3、如果是希望本地主动控制远程用户(请求控制目标用户),则调用BRAC_VideoCallControl发起呼叫时,dwFlags=BRAC_VIDEOCALL_FLAGS_CONTROLREQ;
4、主控端设置远程协助窗口句柄:BRAC_SetSDKOption(BRAC_SO_CORESDK_REMOTEASSISTHWND, (CHAR*)&hVideoWnd, sizeof(DWORD)); 设置该句柄后,AnyChat将会主动捕获该窗口上的键盘、鼠标事件并传输到目标计算机执行;
5、当远程协助窗口有滚动条,在滚动条移动后,在滚动条的拖动事件中需要更新AnyChat的内部状态:
BRAC_SetSDKOption(BRAC_SO_CORESDK_REMOTEASSISTXPOS, (CHAR*)&dwXPos, sizeof(DWORD));
BRAC_SetSDKOption(BRAC_SO_CORESDK_REMOTEASSISTYPOS, (CHAR*)&dwYPos, sizeof(DWORD));
备注:远程协助目前暂时只支持Windows平台。
参考资料:
1、AnyChat新增屏幕共享(远程桌面)功能
2、开放屏幕共享(远程桌面)参数控制接口
|
|