因为getVersion返回数据从字符串变成对象,因此版本数据需要从对象中解
// 旧版本
// 返回值类似:0.0.1 - build on 2020-08-07 17:02
xyRTC.getVersion(): string;
// 新版本
xyRTC.getVersion(): IVersion;
/**
* Electron sdk version
*
* @property {string} version Electron sdk 版本号
* @property {string} buildTime Electron sdk 构建时间
* @property {string} cppVersion 依赖c++ sdk 版本号
* @property {string} info Electron sdk 构建详情 类似:0.0.1 - build on 2020-08-07 17:02
*/
export interface IVersion {
version: string;
buildTime: string;
cppVersion: string;
info: string;
}
旧版本,当使用到麦克风设备时,sdk内部会自动进行麦克风声音采集或停止采集
新版本,如果是在会议中,sdk内部仍然会自动进行处理麦克风声音采集,但是会议外使用麦克风时采集需要用户自己处理,sdk提供了麦克风采集对应的方法:
/**
* 开始音频捕获,麦克风
*/
xyRTC.startAudioCapture();
/**
* 结束音频捕获,麦克风
*/
xyRTC.stopAudioCapture();
使用方法如下:在使用麦克风时调用startAudioCapture,不使用时调用stopAudioCapture,另外切换麦克风设备时,也要重新调用startAudioCapture
// 会外开始使用麦克风时调用
xyRTC.startAudioCapture();
// 会外结束使用麦克风时调用
xyRTC.stopAudioCapture();
// 会外麦克风切换 需要重新采集麦克风
xyRTC.on("CurrentDevice", (currentDevice) => {
if(currentDevice.microphone && callState !== 'meeting'){
xyRTC.startAudioCapture();
}
};);
旧版本通过RecordStatusNotification事件的e.isStart
来区分是否是当前参会者开启的录制;
v3.x+版本开始,RecordStatusNotification事件被移除,需要用户通过RecordingStateChanged事件的状态改变区分是否是当前参会者开启了录制功能;
旧版本
xyRTC.on('RecordingStateChanged', (e: IRecordStateChange) => {})
/* 录制回调 */
enum SDKRecordingState
{
RECORDING_STATE_IDLE, // 空闲 录制完成
RECORDING_STATE_STARTING, // 开启录制中
RECORDING_STATE_ACTING, // 正在录制中
RECORDING_STATE_STOPING, // 停止录制中
RECORDING_STATE_INACT // 暂未使用 暂停录制相关,暂时用不到
};
interface IRecordStateChange{
recordState: SDKRecordingState; // 录制状态
isRecorded: boolean; // 是否录制
reason:string; // 录制错误码, 详见错误码文档
message:string // 录制错误码对应信息
}
新版本
xyRTC.on('RecordingStateChanged', (e: IRecordStateChange) => {
}
interface IRecordStateChange {
recordState: RecordStatus; // recordState 更新
reason: string;
message: string;
}
/**
* 云端录制状态
*
* @param IDLE 本地录制未开始或录制结束
* @param ACTING 本地录制进行中
* @param PAUSE_BY_OTHERS 录制被暂停 这里有两种情况 1. 本地正在录制中,被会控暂停 2. 其他人正在录制中,被会控暂停录制
* @param IDLE_BY_OTHERS 录制结束 两种情况 1. 本地正在录制中或者暂停中,被会控结束录制 2. 其他人录制结束
* @param ACTING_BY_OTHERS 录制进行中 两种情况 1. 本地录制被暂停后又被恢复录制 2. 其他人录制进行中
* @param DISABLE 录制功能被禁用,无权限
*/
enum RecordStatus {
IDLE,
ACTING,
PAUSE_BY_OTHERS,
IDLE_BY_OTHERS,
ACTING_BY_OTHERS,
DISABLE,
}
请参考内容共享(v3.x)文档;
移除getFaceInfo方法和AIFaceInfo事件, 人脸对应的用户信息已经合并到AIFaceRecv事件,用户需要改为从AIFaceRecv事件中获取用户信息:
xyRTC.on('AIFaceRecv', (e: IAIFaceRecv) => {
}
/**
* 人脸信息
*
* @property { boolean } isLocal 是否是自己
* @property { string } calluri 设备id
* @property { string } participantId 参会者id
* @property { number } type 0:人脸识别 1:人脸跟踪 2:电子铭牌
* @property { number } seq
* @property { IFacePosition[] } positionArr 人脸位置信息
*/
interface IAIFaceRecv {
isLocal: boolean;
calluri: string;
participantId: number;
type: number;
seq: number;
faceInfoArr: IAIFaceInfo[]; // v3.10.0新增,包含了用户信息、人脸位置信息
}
/**
* 人脸对应的用户信息
*
* @property { string } userId 人脸对应用户ID
* @property { string } userName 用户名称
* @property { string } userNickName
* @property { number } userAge 用户年龄
* @property { string } userIdentifyCard
* @property { string } userTitle 用户企业名称
* @property { string } userPhone 用户手机号
* @property { number } userStatus
*/
interface IAIFaceInfo {
userId: string;
userName: string;
userNickName: string;
userAge: number;
userIdentifyCard: string;
userTitle: string;
userPhone: string;
userStatus: number;
position: IFacePosition;
}
/**
* 人脸位置信息
*
* @property { number } faceId 人脸的ID
* @property { number } left 检测人脸的左侧距离
* @property { number } right 检测人脸的右侧距离
* @property { number } top 检测人脸的顶部距离
* @property { number } bottom 检测人脸的底部距离
*
*/
interface IFacePosition {
faceId: number;
left: number;
right: number;
top: number;
bottom: number;
}
新版本getConfMgmtUrl无法直接获取到会控链接,需要在HostMeetingUrl事件中获取,使用方式如下
// 会控H5链接
xyRTC.on('HostMeetingUrl',(e: {pc:string, mobile:string, members: string})=>{
);
// 调用
xyRTC.getConfMgmtUrl(confNum?: string)
v3.x+版本暂时不支持此功能,如果需用此功能,请勿升级最新的SDK版本;