# 视频管理
# 1. 发送本地视频流
开启关闭发送本地视频流:
var webPlugin = new WebPlugin();
//打开视频流上传
webPlugin.EnableVideo(true);
//关闭视频流上传
webPlugin.EnableVideo(false);
# 2. 设置本地视频宽高比
设置本端视频宽高比,用于适配不同屏幕的显示需求,需在通话建立后调用。
var webPlugin = new WebPlugin();
/**
* @desc 设置本地宽高比
* @param {string} ratio - 宽高比
*/
if (SDK_STATE.isTalking) {
webPlugin.SetVideoRatio(ratio);
}
# 3. 订阅视频尺寸
订阅获取对方的视频尺寸,加入房间前设置有效
var webPlugin = new WebPlugin();
/**
* @desc 订阅视频尺寸,加入房间前设置有效
* @param width 宽px
* @param height 高px
*/
webPlugin.ConfirmSubscriptionVideo(width, height);
# 4. 获取支持的订阅视频尺寸列表
获取房间支持的视频分辨率列表,建立通话后获取有效
var webPlugin = new WebPlugin();
/**
* @desc 获取房间支持的视频分辨率列表,建立通话后获取有效
*/
webPlugin.GetSupportVideoSizes();
/**
* @desc 获取可支持订阅的视频尺寸列表
* @param {boolean} result 结果 true成功, false失败
* @param {String} reason 原因
* @param {Array} videoSize [320*180,640*360] 宽*高
*/
webPlugin.OnSupportVideoSizes(result, reason, videoSize);
# 5. 设置采集参数
采集本端的相关参数设置
var webPlugin = new WebPlugin();
/**
* @desc 设置采集参数
* @param {Number} resolution - 采集分辨率。0=>标准360p;1=>标清720p;2=>高清1080p。
* @param {Number} frameRate - 采集帧速率,默认10
*/
webPlugin.SetCaptureProperty(1, 10);
# 6. 视频截图
通过插件可以在视频通话过程中实现截图功能,用户可以将自己的屏幕内容,自己的视频画面,参会者的视频画面进行截图本地保存,从而提升沟通效率,以及提供凭证。
var webPlugin = new WebPlugin();
/**
* @desc 截图拍照
* @param {string} type - 类型
* - Custom: 自定义,为此值时 videoSource 参数有效
* - Agent: 坐席(这里用不到)
* - Guest: 访客(这里用不到)
*/
webPlugin.SnapshotWithStreamId("Custom", renderId);
拍照截图结果通知:
var webPlugin = new WebPlugin();
/**
* @desc 拍照结果通知
* @param {boolean} result - 是否成功
* @param {string} content - result 为 true 时为 base64 拍照数据
* @param {string} filePath - result 为 true 时为 本地文件地址
*/
webPlugin.OnSnapshotResult = function (result, content, filePath) {
console.log('OnSnapshotResult', result);
SDK_STATE.snapshotInfo.base64 = base64;
SDK_STATE.snapshotInfo.snapShotFilePath = filePath;
base64 = 'data:image/gif;base64,' + base64;
document.getElementById('snapshot-image').src = base64;
};
# 7. 通话中通话界面设置
# 会议焦点设置
会议布局的聚焦画面显示,只有通话中设置有效。当不存在指定的画面,调用失败;当后续指定的画面成员不存在,则会显示自己的画面作为聚焦画面;通过界面点击某个画面和通过该接口设置以最近一次为准。成员列表通过 GetConfMembers 获取,参数错误可通过OnEventNotify通知上报,接口调用结果通过OnFunctionResult上报。
var webPlugin = new WebPlugin();
function selectSpeechFocus() {
var selectDOM = document.getElementById('selected-speech-focus-item');
triggerSelectSpeechFocus(false);
var userId = selectDOM.options[selectDOM.selectedIndex].value
webAgent.ChangeTalkingWindowConfig.SpeechFocusView.UserId = userId;
webAgent.ChangeTalkingWindowConfig.SpeechFocusView.FocusViewType = "User";
if (userId == "屏幕共享") {
webAgent.ChangeTalkingWindowConfig.SpeechFocusView.FocusViewType = "ScreenShare";
}
webAgent.ChangeTalkingWindow();
}
# 通话布局设置
可设置1. Gird 宫格(2-4人);2. Auto 自动布局,2人时为一对一通话,类似视频聊天;两人以上时演讲者模式,指其中一人是大屏幕。
function selectVideoLayout() {
var layout = _getValue('select-video-layout')
webAgent.ChangeTalkingWindowConfig.VideoLayout = layout;
webAgent.ChangeTalkingWindow();
}
# 窗口大小设置
Full 充满全屏, Max 最大(不充满), Normal 默认, Small 小窗(不是最小化)
function SetVideoWindowModel() {
var model = _getValue('select-videoWindow-model');
webAgent.ChangeTalkingWindowConfig.WindowModel = model;
webAgent.ChangeTalkingWindow();
}