Skip to content

当前版本:V2.0.72 苏州必捷网络有限公司

1 概述

1.1 目的

用于指导使用必捷SDK开发Windows发送端应用程序。

1.2 读者对象

本文档适用于使用C/C++语言开发Windows发送端应用程序的人员和测试人员。

1.3 缩略语定义

缩写名称英文中文
BJCast必捷无线投屏协议

2 范围

2.1 功能

本SDK为BJCast发射端SDK,和BJCast接收端SDK配合进行无线投屏。 本SDK为标准的windows动态库模块,提供C接口供应用集成。

2.2 SDK框架

总体框架分为两层:

  1. SDK层:SDK为bjcast_sendr_itf.lib为接口库的一系列库合集。
  2. 应用层:开发的demo应用部分,我司交付的是demo命令行应用程序,可参考demo源码进行针对性的集成和二次开发工作。

2.3 SDK交付物

  • SDK库
  • DEMO APP源代码,Demo APP基于最新SDK,作为参考实现提供给客户
  • SDK接口文档

2.4 版本要求

  • 支持的操作系统:Windows10 1507及以上版本,支持扩展屏投屏的版本为Windows10 1809及以上版本。

3 接口

3.1 初始化SDK接口

C
   CONTROLMANAGER_WRAPPER_API ControlManagerIntfHandle
    BJCastCreateControlManagerIntfEx(const ControlManagerInitPara *initPara);

描述

设置SDK的初始化参数,在启动时调用。

参数

名称描述
initParaSDK初始化参数

ControlManagerInitPara 结构体说明如下:

C
typedef struct
    {
        ControlManagerIntfListener *listener; 

        const char *log_directory;
        const char *user_name;
        const char *sender_id; 
        const char *mac_addr; 
        const char *custom_info; 
        bool enable_weak_network_ft;

        int ctrl_heartbeat_interval;        
        int ctrl_heartbeat_lost_warn_times; 
        int ctrl_heartbeat_lost_max_times; 
        const char* encode_scene_conf;  
        const char* encoder_ext_conf; 
        BJCastReverseListener *reverse_listener; 
    } ControlManagerInitPara;
名称描述
listenerControlManagerIntfListener对象指针,ControlManagerIntfListener为SDK回调接口结构体,用户需要自行实现其中的回调接口函数
log_directorySDK日志保存位置
user_nameAPP名称
sender_idAPP唯一的UUID,用户需要保证其唯一性
mac_addrApp运行的设备的mac地址,默认填空字符串
custom_info用户自定义信息,默认填空字符串
enable_weak_network_ft弱网优化机制开关,true表示启用,false表示关闭
ctrl_heartbeat_interval心跳间隔周期,单位为秒, 默认2s
ctrl_heartbeat_lost_warn_times心跳丢失告警门限,丢失多少次通知应用层, 默认值2
ctrl_heartbeat_lost_max_times心跳丢失最大告警次数,丢失最大次数自动断开投屏,应该大于ctrl_heartbeat_lost_warn_times ,默认值15
encode_scene_confencoder编码场景常规参数配置,参考典型配置文件encoder_sence_conf.json,如果用户不需设置请设置为null
encoder_ext_confencoder的额外编码参数设置,参照ffpmeg的参数选项,组织格式参照encoder_ext_conf.json
reverse_listener用于接收端反向控制发射端投屏,默认设置为NULL

返回值:

ControlManagerIntfHandle为SDK接口类对象实例句柄。如果成功将返回一个有效的ControlManagerIntfHandle对象,失败则返回0值。

3.2 销毁SDK接口

C
CONTROLMANAGER_WRAPPER_API void BJCastDestoryControlManagerIntf(ControlManagerIntfHandle handle);

描述

销毁SDK操作类对象实例。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

参考样例

C
ControlManagerIntfHandle handle=BJCastCreateControlManagerIntfEx(initParams);

...//投屏操作

BJCastDestoryControlManagerIntf(handle);

注意事项

在调用该接口销毁SDK前,需要确保结束投屏操作。

3.3 弱网优化机制开启/关闭接口

C
CONTROLMANAGER_WRAPPER_API void BJCastEnableWeakNetworkFt(ControlManagerIntfHandle handle, bool enable);

描述

用于开启/关闭弱网优化机制。

参数

名称描述
handleSDK接口类对象句柄
enable开关标志位,true:启动弱网优化,false:关闭弱网优化

注意事项

该接口应该在投屏流程发起前设置。

3.4 投屏设备自发现服务启动接口

C
CONTROLMANAGER_WRAPPER_API S32 BJCastStartServerDetecting(ControlManagerIntfHandle handle);

描述

启动自发现服务扫描局域网内可用的投屏设备。设备信息将由ControlManagerIntfListeneronServerDetected接口返回给应用层。该流程是异步的。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

注意事项 自发现服务基于mDNS消息,请确保接入的局域网没有禁止mDNS消息。

3.5 投屏设备自发现服务停止接口

C
CONTROLMANAGER_WRAPPER_API S32 BJCastStopServerDetecting(ControlManagerIntfHandle handle);

描述

停止自发现服务。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

注意事项

该接口应该和BJCastStartServerDetecting接口在同一线程中调用。

3.6 建立信令会话接口

C
    CONTROLMANAGER_WRAPPER_API S32 BJCastLogin(ControlManagerIntfHandle handle, const S8 *ip, U16 port,
                                               const S8 *pin = "", const S8 *user_name = "", const S8 *user_info = "",const BJCastReceiverPara* para = nullptr);

描述

启动与接收端建立信令连接会话。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
ip接收端IP地址
port接收端监听端口,默认为8190
pin投屏密码,接收端提供
user_name使用者名称,默认为空字符串
user_info使用者信息,默认为空字符串
para由应用层probe机制或者自发现服务获取到的接受端信息,如果启动自发现服务或者没有实现probe机制,传入空值即可

BJCastReceiverPara结构体定义如下:

C
    typedef struct {
        int remote_ft;
        int remote_max_resolution; 
    }BJCastReceiverPara;
名称描述
remote_ft接收端能力集,有关该字段的详细信息请参照BJCastFtFlags枚举定义
remote_max_resolution接收端支持的最大投屏分辨率,有关该字段的详细信息请参照相关宏定义

remote_ft能力集枚举值如下:

typedef enum
{
	BJCAST_SUPPORT_CTRL_HEARTBEAT = (0x01),
	BJCAST_SUPPORT_CTRL_IFAMEREQ  = (0x02),
	BJCAST_SUPPORT_VIDEO_WEAKNETWORK_FTV1 = (0x04),
	BJCAST_SUPPORT_CTRL_TRAN_FTV1 = (0x08),
	BJCAST_SUPPORT_VIDEO_NEG = (0x10)
}BJCastFtFlags;
名称描述
BJCAST_SUPPORT_CTRL_HEARTBEAT接收端信令通道支持心跳保活机制
BJCAST_SUPPORT_CTRL_IFAMEREQ接受端支持关键帧请求机制
BJCAST_SUPPORT_VIDEO_WEAKNETWORK_FTV1接收端视频媒体传输通道支持弱网优化机制
BJCAST_SUPPORT_CTRL_TRAN_FTV1接收端信令传输通道支持弱网优化机制
BJCAST_SUPPORT_VIDEO_NEG接收端支持视频参数协商机制

remote_max_resolution定义如下:

名称描述
BJCAST_MAX_RESOLUTION_1080P1080P 该宏定义值为0
BJCAST_MAX_RESOLUTION_720P720P 该宏定义值为1
BJCAST_MAX_RESOLUTION_2560X16002K 该宏定义值为2
BJCAST_MAX_RESOLUTION_4K4K 该宏定义值为3

返回值

如果成功,返回值为0,失败返回非0值。创建信令会话结果将会由ControlManagerIntfListenerOnCreateSessionRes接口通知应用层,具体请参照相关回调接口说明。

注意事项

只有该接口返回成功后才可进行下一步投屏操作。

3.7 选择投屏模式接口

C
CONTROLMANAGER_WRAPPER_API S32 BJCastSetMirrorMode(ControlManagerIntfHandle handle, MirrorMode mode);

描述

设置投屏模式。该接口应在建立信令会话接口调用前调用。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
mode投屏模式,有关投屏模式的定义参照MirrorMode说明

MirrorMode的定义如下:

C
typedef enum
{
	CMMM_Screensharing,
	CMMM_Windowsharing
}MirrorMode;
名称描述
CMMM_Screensharing桌面投屏
CMMM_Windowsharing窗口投屏

返回值 成功返回0值,失败返回-1。

3.8 获取屏幕数量接口

C
    CONTROLMANAGER_WRAPPER_API S32
    BJCastScreenCount(ControlManagerIntfHandle handle);

描述

获取屏幕数量,该接口应在调用选择投屏模式接口后调用。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

返回值

成功则返回目前投屏电脑的屏幕数量。

注意事项

屏幕数量不仅和实际接入的活跃的物理屏幕有关,还和显示模式有关。处于复制模式下,屏幕数量只有1。

3.9 设置投屏屏幕接口

C
CONTROLMANAGER_WRAPPER_API S32 BJCastSetScreen(ControlManagerIntfHandle handle,
                                                   S32 screen);

描述

设置投屏屏幕,screen为投屏屏幕的编号,主屏幕为0,其余屏幕依次递增。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
screen屏幕编号

返回值

成功返回0值,失败返回非0值。

注意事项

该接口需要在建立信令会话接口调用前调用。

3.10 获取音频设备数量接口

C
CONTROLMANAGER_WRAPPER_API S32 BJCastMicphoneCount(ControlManagerIntfHandle handle);

描述

获取音频设备数量。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

返回值

返回目前投屏电脑的活跃的音频设备数量。

3.11 选择投屏音频设备接口

C
    CONTROLMANAGER_WRAPPER_API S32 BJCastSelectMicphone(ControlManagerIntfHandle handle,
                                                        S32 index);

描述

选择投屏音频设备。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
index音频设备编号,默认为-3(回环设备)

返回值

成功返回0值,失败返回非0值。

注意事项

该接口需要在建立信令会话接口调用前调用。

3.12 开始投屏接口

C
CONTROLMANAGER_WRAPPER_API S32 BJCastStartMirror(ControlManagerIntfHandle handle);

描述

启动投屏。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

返回值

成功返回0值,失败返回非0值。

注意事项

该接口需要在信令会话接口调用成功,且onEncoderReady接口被触发后调用。

参考样例

C
...//等待onEncoderReady被触发

if(!BJCastLogin(...)){
    BJCastStartMirror();
}

3.13 结束投屏接口

C
CONTROLMANAGER_WRAPPER_API S32 BJCastStopMirror(ControlManagerIntfHandle handle);

描述

停止投屏。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

返回值

返回0值。

3.14 请求全屏接口

CONTROLMANAGER_WRAPPER_API S32 BJCastRequestFullscreen(ControlManagerIntfHandle handle);

描述

投屏过程中请求接收端全屏显示投屏画面。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

返回值

成功返回0值,失败返回非0值,失败原因一般是发送请求信令失败。

3.15 退出全屏显示接口

CONTROLMANAGER_WRAPPER_API S32 BJCastRequestFullscreen(ControlManagerIntfHandle handle);

描述

投屏过程中请求接收端退出全屏显示投屏画面。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

返回值

成功返回0值,失败返回非0值,失败原因一般是发送请求信令失败。

3.16 初始化反控拉流模块接口

C
    CONTROLMANAGER_WRAPPER_API S32 BJCastInitReverse(ControlManagerIntfHandle handle, const char *device_id,
                                                     const char *device_name);

描述

初始化反控及接收端收藏拉流模块。接收端收藏拉流功能仅BJ72支持。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
device_id发射端设备ID,用户自定义但需要具备唯一性
device_name发射端设备名称,用户自定义

返回值

成功返回0值,失败返回非0值。

注意事项

该接口需在建立投屏信令会话前调用。

3.17 打开反控及收藏拉流模块接口

C
 CONTROLMANAGER_WRAPPER_API S32 BJCastOpenReverse(ControlManagerIntfHandle handle);

描述

打开反控和收藏拉流通道。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

返回值

成功返回0值,失败返回非0值。失败时请检查8192端口占用情况。

3.18 注册发射端接口

C
    CONTROLMANAGER_WRAPPER_API void BJCastRegisterToReceiver(ControlManagerIntfHandle handle, const char *ip);

描述

向支持收藏拉流功能的接收端注册发射端信息。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
ip接收端IP地址

3.19 关闭反控及收藏拉流模块接口

C
CONTROLMANAGER_WRAPPER_API void BJCastCloseReverse(ControlManagerIntfHandle handle);

描述

关闭反控和收藏拉流通道。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

3.20 重置发射端设备名称接口

C
CONTROLMANAGER_WRAPPER_API void BJCastSetDeviceName(ControlManagerIntfHandle handle, const char *device_name);

描述

重置发射端APP中的设备名称。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
device_name设备名称

注意事项

该接口需要在建立投屏信令会话前调用。

3.21 异步获取应用窗口信息列表接口

C
    CONTROLMANAGER_WRAPPER_API S32 BJCastasyncWindowList(ControlManagerIntfHandle handle);

描述

异步请求应用程序窗口信息列表。窗口信息列表将通过onWindowList回调返回给应用层。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

返回值

返回0值。

3.22 选择投屏窗口接口

C
 CONTROLMANAGER_WRAPPER_API S32 BJCastSelectWindow(ControlManagerIntfHandle handle, S32 window);

描述

根据onWindowList回调返回的窗口新系列选择投屏窗口。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
window窗口ID值

返回值

成功返回0值,失败返回-1。

3.23 更改编码场景配置接口

C
 CONTROLMANAGER_WRAPPER_API S32 BJCastSetEncodeSceneConfig(ControlManagerIntfHandle handle, const char* scene_def);

描述

修改编码场景配置。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
scene_def编码场景配置json字符串, 参考encoder_sence_conf.json

返回值

成功返回0,失败返回-1。

注意事项 当选择的应用窗口被关闭时,onTargetWindowNotExist回调将会被触发,此时应终止投屏流程的推进。

3.24 投屏信令会话重授权接口

C
    CONTROLMANAGER_WRAPPER_API void BJCastReAuth(ControlManagerIntfHandle handle, const char *pin);

描述

接收端存在投屏密码的场景下,当通过login发起的建立投屏会话因投屏密码缺失导致会话建立失败时,输入投屏密码重新建立投屏信令会话。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
pin投屏密码,接受度提供

3.25 检测虚拟扩展屏是否存在接口

C
    CONTROLMANAGER_WRAPPER_API int BJCastHasVirtualMonitor(ControlManagerIntfHandle handle);

描述

检测虚拟扩展屏是否存在。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回

返回值

如果虚拟扩展屏存在返回1,否则返回0。

3.26 设置自定义信息接口

C
    CONTROLMANAGER_WRAPPER_API S32 BJCastSetCustomInfo(ControlManagerIntfHandle handle, const char *custom_info);

描述

修改用户自定义文本信息。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
custom_info用户自定义文本信息,不超过256个字符

返回值 成功返回0,失败返回负值。

3.27 设置发射端MAC地址接口

C
CONTROLMANAGER_WRAPPER_API S32 BJCastSetMachineMACAddr(ControlManagerIntfHandle handle, const char *mac_addr);

描述

修改发射端APP MAC地址。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
mac_addr发射端的MAC地址

返回值

成功返回0,失败返回负值。其中如果MAC地址格式非法返回-2。

3.28 设置本地音频播放静音接口

C
   CONTROLMANAGER_WRAPPER_API S32 BJCastSetLocalPlayDeviceMute(ControlManagerIntfHandle handle, int status);

描述

设置本地音频播放器禁音。

参数

名称描述
handleSDK接口类对象实例句柄,该句柄由初始化接口返回
status1:禁音,0:解除禁音

返回值

成功返回0值,失败返回负值。

3.29 虚拟扩展屏操作接口

该部分包含虚拟屏驱动相关接口。

3.29.1 打开虚拟扩展驱动

apl
CONTROLMANAGER_WRAPPER_API bool BJCastOpenVM();

描述

打开虚拟驱动。在调用虚拟扩展屏相关接口前需要确定该接口调用成功。

参数

无。

返回值

0:失败。

1:成功。

3.29.2 关闭虚拟扩展驱动

apl
CONTROLMANAGER_WRAPPER_API void BJCastCloseVM();

描述

关闭虚拟驱动。

参数

无。

返回值

无。

3.29.3 添加虚拟屏幕

apl
CONTROLMANAGER_WRAPPER_API bool BJCastNewMonitor();

描述

添加虚拟屏幕。

参数

无。

返回值

true:添加虚拟屏成功。

false:添加虚拟屏失败。

3.29.4 移除虚拟屏幕及驱动

apl
CONTROLMANAGER_WRAPPER_API bool BJCastDelMonitor();

描述

移除虚拟屏幕及驱动。

参数

无。

返回值

true: 删除成功

false: 删除失败

注意

removeVirtualMonitor需要在虚拟屏存在的情况下调用,否则会导致驱动异常。

3.29.5 设置扩展屏幕模式

apl
CONTROLMANAGER_WRAPPER_API S32 BJCastForceExtendMonitor();

描述

设置当前系统投影为扩展模式,即win+P设置扩展屏模式。

参数

无。

返回值

0:成功

1:失败

3.29.6 设置仅电脑屏幕模式

apl
CONTROLMANAGER_WRAPPER_API S32 BJCastForceRestoreMonitor();

描述

设置当前系统投影为仅电脑屏幕模式,即win+P设置仅电脑屏幕。

参数

无。

返回值

0:成功

1:失败

3.29.7 设置当前系统投影为复制模式

apl
CONTROLMANAGER_WRAPPER_API S32 BJCastForceCloneMonitor();

描述

设置当前系统投影为复制模式,即win+P设置仅电脑屏幕。

参数

无。

返回值

0:成功

1:失败

3.30 回调接口说明

3.30.1 自发现设备回调接口

C
void (*onServerDetected)(ServerInfo *info, int add_rmv_flag)

描述

将自发现服务发现的接收端设备信息通知应用层。

参数

名称描述
add_rmv_flag添加/删除设备信息标志位 1:添加 0:删除
info设备信息,详情请参照ServerInfo说明

ServerInfo定义说明:

C
typedef struct ServerInfo
{
    S8 serial[64];
    S8 ip[16];
    U16 port;
    S8 name[128];
    U32 version;
    U32 mask;
    U32 max_resolution;
    U32 max_fps; // device maximum framerate
} ServerInfo;
名称描述
serial接收端序列号
ip接收端IP
port接收端投屏信令会话监听端口
name接收端名称
version接收端版本号
mask接收端能力集
max_resolution接受端支持的最大投屏分辨率
max_fps接收端支持的最大投屏帧率

3.30.2 投屏会话结束回调接口

C
void (*onCallEnd)(const Reason)

描述

通知应用层投屏会话结束。

参数

名称描述
Reason会话结束原因

Reson相关宏定义如下:

const Result E_OK = 0;
const Result E_FAILURE = -1;
const Result E_NULL_POINTER = -2;
const Result E_NOT_INITIALIZED = -3;
const Result E_ALREADY_INITIALIZED = -4;
const Result E_NOT_IMPLEMENTED = -5;
const Result E_NETWORK_FAILURE = -6;
const Result E_TIMEOUT = -7;
const Result E_INVALID_PARAMETER = -8;
const Result E_AUTHENTICATION_REQUIRED = -9;
const Result E_AUTHENTICATION_FAILED = -10;
const Result E_DECODE_MESSAGE_FAILURE = -11;
const Result E_ENCODE_MESSAGE_FAILURE = -12;
const Result E_CALL_NOT_FOUND = -13;
const Result E_CALL_REJECTED = -14;
const Result E_CALL_NO_SCREEN_RESOURCE = -15;
const Result E_AUTH_FAILED = -16;

const Result E_HEARTBAET_LOST = -17;
const Result E_CONNECT_FAILED = -18;
const Result E_ENCOER_PARAM_INVALID = -19;
const Result E_NO_WINDOW_MEDIA_STREAM = -20;
const Result E_TARGET_WINDOW_NOT_EXIST = -30;
const Result E_HEARTBAET_REJECT = -31;
const Result E_CLIENT_NO_SCREEN_RESOURCE = -32;

//media部分错误
const Result E_MEDIA_OPEN_ERR = -51;

// success case
const Result E_CALL_ACCEPTED = E_OK + 1;
const Result E_CALL_HANGUP = E_OK + 2;
const Result E_LIMIT_USED = -10000;
名称描述
E_OK正常流程结束
E_NETWORK_FAILURE网络异常断开
E_TIMEOUT网络连接超时没有回应
E_INVALID_PARAMETER非法参数
E_CALL_REJECTED接收端拒绝会话连接
E_CALL_NO_SCREEN_RESOURCE接收端投屏路数达到上限
E_AUTH_FAILED接收端会话授权失败,没有通过投屏密码校验
E_HEARTBAET_LOST信令会话心跳丢失
E_TARGET_WINDOW_NOT_EXIST窗口投屏目标窗口不存在
E_NO_WINDOW_MEDIA_STREAM窗口视频媒体流不存在
E_HEARTBAET_REJECT心跳拒绝,接收端重启可能导致此类错误
E_CONNECT_FAILED创建投屏信令会话失败
E_CALL_HANGUP接收端主动结束会话

3.30.3 全屏/退出全屏回调接口

C
void (*onCallUpdate)(bool)

描述

通知应用层接收端投屏画面全屏显示/退出全屏显示。

参数

名称描述
flag1:全屏 0:推出全屏

3.30.4 锁屏通知回调接口

C
void (*onCallSCreenLock)(bool) ;

描述

通知应用层系统锁屏。

参数

名称描述
flag1:锁屏

3.30.5 系统休眠回调接口

C
void (*onSystemHangUp)() ;

描述

通知应用层系统休眠。

3.30.6 视频编码器加载完成回调接口

C
void (*onEncoderReady)() ;

描述

通知应用层视频编码器加载完成。

3.30.7 目标投屏窗口不存在回调接口

C
void (*onTargetWindowNotExist)() ;

描述

通知应用层投屏目标应用程序窗口不存在。

3.30.8 投屏会话心跳丢失警告回调接口

C
 int (*onSessionHeartbeatLost)(int hb_loss_count);

描述

通知应用层投屏信令会话出现心跳丢失。

参数

名称描述
hb_loss_count心跳丢失次数

返回值

如果应用层认为需要结束投屏,返回值设为1,否则设为0。

3.30.9 投屏会话心跳恢复回调接口

C
void (*onSessionHeartbeatRecovered)();

描述

通知应用层投屏信令会话恢复正常。

3.30.10 创建信令会话结果回调接口

C
void (*OnCreateSessionRes)(int res) ;

描述

通知应用层投屏信令会话创建结果。

参数

名称描述
res创建成功该值为0。如果创建失败,返回错误码,详情参考onCallEnd回调错误码

3.30.11 窗口信息列表回调接口

C
void (*onWindowList)(WindowInfo inf[], int &windowCnt)

描述

将获取到的应用程序窗口信息通知应用层。

参数

名称描述
windowCnt窗口个数
inf窗口信息列表数组

WindowInfo定义如下:

C
typedef struct{
	intptr_t id;
	char	title[128];	 
	uint8_t icon[307200];	 
	int		iconSize;	 
	void	*hIcon;		 
}WindowInfo;
名称描述
id窗口ID
title窗口名称
icon窗口图标
iconSize窗口图标大小
hIcon窗口图标句柄

3.30.12 收藏拉流接收端信息通知回调接口

C
void (*onReverseCastNotify)(const char *receiver_ip1, const char *receiver_ip2, const char *target_name,
                                    const char *target_pincode) = 0;

描述

通知应用层接收端信息。仅BJ72使用,非BJ72接收端仅须实现一个空的函数即可。

参数

名称描述
receiver_ip1接收端IP
receiver_ip2接收端IP
target_name投屏目标接收端名称
target_pincode接收端投屏密码

4 如何使用SDK

4.1 集成简要说明

步骤一 引入库文件

MSVC工程正确引入bjcast_sender_wrapper.lib和头文件。

步骤二 调用SDK接口

在代码中使用SDK提供的接口发进行投屏等相关操作,具体实现请参考bjcast_demo相关示例代码。