iOS

# 视频管理

# 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();
}