|
本帖最后由 佰锐科技-梁国桦 于 2017-12-20 19:08 编辑
以JavaScript代码为例,我简略说说多路音视频输入(含桌面共享)的步骤:
1、在初始化之后,设置启用桌面共享- BRAC_SetSDKOption(BRAC_SO_CORESDK_SCREENCAMERACTRL, 1);
复制代码 2、枚举视频设备(用于桌面共享的虚拟摄像头一般在数组的最后一个;第2、3、4步可在进入房间后执行)- videoCaptureList = BRAC_EnumDevices(BRAC_DEVICE_VIDEOCAPTURE);
复制代码 3、把获取的视频设备分别设置不同的视频流号(这里例子用for循环来设置,从0开始设置流号)- for(var i=0; i<videoCaptureList.length; i++) {
- BRAC_SetUserStreamInfo(mSelfUserId, i, BRAC_SO_LOCALVIDEO_DEVICENAME, videoCaptureList[i]);
- }
复制代码 4、设置绑定视频流显示位置和开启视频流- // 设置视频流显示位置(由最后一个参数传入流号)
- // 把0号流显示在AnyChatLocalVideoDiv0上,其他流号亦然;要设置多个视频流显示位置就调用多次,每次传不同的div、objectId和视频流号即可
- BRAC_SetVideoPosEx(mSelfUserId, document.getElementById("AnyChatLocalVideoDiv0"), "ANYCHAT_VIDEO_LOCAL_0", 0);
- // 打开本地的0号流(由第三个参数传入流号)
- BRAC_UserCameraControlEx(mSelfUserId, 1, 0, 0, "");
复制代码 以上就是多路音视频的显示步骤。
设置某号流视频参数的方法:- // deviceIdx为传入的视频流号
- function videoStreamParamsSetting(deviceIdx) {
- // 设置本地视频编码的码率(如果码率为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);
- }
复制代码 可以改造成视频参数由函数的参数传递。
若传的是桌面共享的视频流号,且分辨率设置得跟显示器的分辨率一致,则会整个桌面共享出去,绿框会消失(在打开桌面共享流之前调用)
|
|