admin 发表于 2016-2-1 14:26:28

2016-02-01 增加远程协助功能,开放API接口

远程协助分两部分:
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、开放屏幕共享(远程桌面)参数控制接口


页: [1]
查看完整版本: 2016-02-01 增加远程协助功能,开放API接口