多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### **多路音视频输入** 本节讲述多路音视频输入(含桌面共享)的步骤。所有代码均为JavaScript代码。 **设置共享桌面** 在初始化后,调用以下API,设置启用桌面共享: `BRAC_SetSDKOption(BRAC_SO_CORESDK_SCREENCAMERACTRL, 1);` **枚举视频设备** 调用以下API,或者视频设备,其中桌面共享虚拟摄像头(设备名:Native Screen Camera)一般是数组的最后一个 ~~~ var videoCaptureList = []; videoCaptureList = BRAC_EnumDevices(BRAC_DEVICE_VIDEOCAPTURE); ~~~ **绑定视频设备与视频流号** 视频流号默认从0开始,需要注意的是,如果以后需要单独使用或者操作指定某号流,一定需要把视频设备与视频流号绑定起来,因为默认情况下视频流号与视频设备并不是一一对应的。 把获取的视频设备分别设置不同的视频流号(这里例子用for循环来设置,从0开始设置流号): ~~~ for(var i=0; i<videoCaptureList.length; i++) { BRAC_SetUserStreamInfo(mSelfUserId, i, BRAC_SO_LOCALVIDEO_DEVICENAME, videoCaptureList[i]); ~~~ **设置视频流显示位置** 以设置0号视频流显示位置为例,JavaScript示例代码如下: ~~~ // 设置视频流显示位置(由最后一个参数传入流号) // 把0号流显示在AnyChatLocalVideoDiv0上,其他流号亦然;要设置多个视频流显示位置就调用多次,每次传不同的div、objectId和视频流号即可 BRAC_SetVideoPosEx(mSelfUserId, document.getElementById("AnyChatLocalVideoDiv0"), "ANYCHAT_VIDEO_LOCAL_0", 0); ~~~ PS:第一个参数传入其他用户的userid,最后一个参数传入视频流号时,表示把该用户的某号视频流显示在指定的div上 **打开/关闭音视频** 以打开/关闭0号视频流为例,JavaScript示例代码如下: ~~~ // 打开本地的0号流(第二个参数控制开关,第三个参数传入流号) BRAC_UserCameraControlEx(mSelfUserId, 1, 0, 0, ""); // 关闭本地的0号流(第二个参数控制开关,第三个参数传入流号) BRAC_UserCameraControlEx(mSelfUserId, 0, 0, 0, ""); ~~~ PS:第一个参数传入其他用户的userid,第三个参数某个视频流号时,表示请求/中断该用户的某路视频流 **设置某路视频流的视频参数** 定义一个函数来设置某路视频流的视频参数,之后只要调用该函数,传入视频流和视频参数即可,JavaScript示例代码如下: ~~~ // deviceIdx为传入的视频流号 function videoStreamParamsSetting(deviceIdx, bitRate, videoWidth, videoHeight, fps, gop) { // 设置本地视频编码的码率(如果码率为0,则表示使用质量优先模式) BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_BITRATECTRL,bitRate); // 设置本地视频采集分辨率 BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_WIDTHCTRL, videoWidth); BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_HEIGHTCTRL, videoHeight); // 设置本地视频编码的帧率 BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_FPSCTRL,fps); // 设置本地视频编码的关键帧间隔 BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_GOPCTRL, gop); // 让视频参数生效 BRAC_SetUserStreamInfo(-1,deviceIdx,BRAC_SO_LOCALVIDEO_APPLYPARAM,1); ~~~ PS:建议先调用设置视频流视频参数函数,再设置视频流显示位置和打开视频流。