音视频通话客户端 XYRTCClient 模块,通过 XYRTC.createClient 创建,代表一次音视频会话,一次入会只需要创建一个客户端模块。客户端模块提供了音视频通话的核心功能,详细的内容如下;
提示
XYRTCClient 模块也支持实现会前设备管理/画面预览功能,创建后,无需执行 publish 推流操作即可;
注册客户端监听事件
XYRTCClient.on(key: XYClientEventKey | string, listener: Function, total?: number): void
参数
参数 | 类型 | 描述 | 兼容 |
key | XYClientEventKey | string | 监听注册的事件Key值 | - |
listener | Function | 监听事件的回调函数,详细见Client事件模块 | - |
total | number | 可选,回调函数触发次数,默认是-1,表示无限制 | - |
详情
SDK通过事件的形式上报会议相关数据,开发者根据自身业务自行决定需要注册监听相应的事件,通过回调方式获取对应的数据;
设置SDK功能开关
XYRTCClient.setFeatureConfig(config: IFeatureConfig): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
config | 功能配置项 | - |
返回值
Promise<IReturnResult>
详情
调用此方法配置是否启用部分默认禁用的功能,例如查询头像开关和配置,查看带宽控制开关等;
小鱼易连账号登录
XYRTCClient.loginXYlinkAccount(userName: string, password: string): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
userName | string | 小鱼易连用户账号 | - |
password | string | 小鱼易连用户账号密码 | - |
返回值
Promise<IReturnResult>
详情
注意
此方法即将废弃,但是不影响历史调用,建议使用新登录方法:loginXYAccount
通过小鱼易连注册的用户,可调用此方法通过账号、密码登录;如果登录成功,返回值状态码是"XYSDK:950120",登录失败详见错误码;
三方账号登录/授权码登录
XYRTCClient.loginExternalAccount(params: ILoginExtAccount): Promise<IReturnResult>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
params | 第三方账号/授权码登录参数,包含名称、三方用户ID、企业ID等 | - |
返回值
Promise<IReturnResult>
详情
第三方账号登录,第三方业务请使用此接口进行登录操作;如果登录成功,返回值状态码是XYSDK:950120
,登录失败详见错误码;
v4.0.0+对此方法进行了安全升级,可选传入authCode和isTempUser两个参数,如果传递,转为授权码登录,否则是默认的第三方账号登录方式;
三方账号统一认证登录 - 小鱼账号登录
XYRTCClient.loginXYAccount(params: LoginXYAccountParams): Promise<IReturnResult>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
params | 小鱼易连账号登录参数,包含账号、密码等 | - |
返回值
Promise<IReturnResult>
详情
通过小鱼易连注册的用户,可调用此方法通过账号、密码登录;如果登录成功,返回值状态码是XYSDK:950120
,登录失败详见错误码;
三方账号统一认证登录 - Token登录
XYRTCClient.loginExtToken(params: LoginExtTokenParams): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
params | Token登录参数,包含登录码、企业ID | - |
返回值
Promise<IReturnResult>
详情
Token登录,获取Token/AuthCode码需要对接服务端API;如果登录成功,返回值状态码是XYSDK:950120
,登录失败详见错误码;
三方账号统一认证登录-授权码登录
XYRTCClient.loginWithAuthCode(params: ILoginWidthAuthCode): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
params | 授权码登录参数,包含企业ID、用户ID、授权码等 | - |
返回值
Promise<IReturnResult>
详情
授权码登录;如果登录成功,返回值状态码是XYSDK:950120
,登录失败详见错误码;
无登录模式调用,需要在调用makeCall前配置已登录用户和网关信息,用于网关签名计算和接口安全校验
XYRTCClient.setLoginTokenInfo(info: LoginTokenInfo): Promise<IReturnResult>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
info | 配置登录用户/网关信息 | 4.0.0+ |
返回值
Promise<IReturnResult>
详情
无登录模式下(即不调用SDK的登录方法),需要入会之前,调用此方法,传递用户登录相关信息,包含Token、clientId、clientSecret等信息;
makeCall
前发起会议呼叫
XYRTCClient.makeCall(params: IMakeCall): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
data | 加入会议配置参数,包含会议号、入会昵称、是否开启或关闭摄像头/麦克风等 | - |
返回值
Promise<IReturnResult>
详情
发起会议呼叫,需要携带会议号、入会密码、入会用户名、是否开启、关闭摄像头/麦克风等配置信息加入会议操作;
通过监听call-status
事件获取呼叫成功状态通知,通过监听disconnected
获取呼叫失败的状态通知;
创建摄像头和麦克风轨道实例;
XYRTCClient.createVideoAudioTrack(): Promise<VideoAudioTrack>
兼容
返回值
Promise<VideoAudioTrack>
详情
返回摄像头和麦克风轨道(VideoAudioTrack)实例,调用完成后,可以开始进行采集视频流操作;
创建共享内容轨道实例;
XYRTCClient.createContentTrack(): Promise<ContentTrack>
兼容
返回值
Promise<ContentTrack>
详情
返回共享内容轨道(ContentTrack)实例;
获取音频的流数据
XYRTCClient.getAudioStream(rosterId?: string): MediaStream | null
兼容
参数
返回值
MediaStream | null
详情
通过指定ID获取对应的MediaStream流数据,开发者可以自行处理Stream流数据,例如进行音频语音识别解析等操作;
获取音频的分析器实例,用于获取远端或本地端音频音量大小
XYRTCClient.getAudioAnalyser(id?: string, config?: AnalyserConfig): AudioAnalyser | null
参数
参数 | 类型 | 描述 | 兼容 |
id | string | 可选,参会者Layout ID,通过layout事件获取,默认是返回本地音频分析器 | - |
config | 可选,音频分析器构造器配置 |
返回值
AudioAnalyser | null
详情
获取指定参会者的音频分析器实例,得到分析器后,可以调用 getAudioLevel
方法获取实时音量大小;
获取视频的流数据
XYRTCClient.getVideoStream(rosterId?: string): MediaStream | null
兼容
参数
返回值
MediaStream | null
详情
通过指定ID获取对应的MediaStream流数据,开发者可以自行处理Stream流数据,例如画面重复渲染等;
指定画面屏幕截图
XYRTCClient.getSnapshot(params: SnapshotParams): Promise<SnapshotResult>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
params | 截图参数,包含rosterId、图片格式、质量 | - |
返回值
Promise<SnapshotResult>
详情
指定开启摄像头的画面的参会者终端进行画面截图,返回截图后的宽、高、base64字符串图片数据;
关闭麦克风
XYRTCClient.muteAudio(): Promise<IVideoAudioType>
返回值
Promise<IVideoAudioType>
详情
关闭麦克风,静音后,远端将听不到本地端声音;通过监听audio-status
事件获取最新的麦克风状态,例如会控服务指定当前设备静音时,本地需要将麦克风置为静音状态;
关闭摄像头
XYRTCClient.muteVideo(): Promise<IVideoAudioType>
返回值
Promise<IVideoAudioType>
详情
本地关闭摄像头后,将释放采集的摄像头资源,且远端看不到本地画面;通过video-status事件获取最新的摄像头状态;
开启麦克风
XYRTCClient.unmuteAudio(): Promise<IVideoAudioType>
返回值
Promise<IVideoAudioType>
详情
麦克风取消静音后,远端将听到本地端声音;
开启摄像头
XYRTCClient.unmuteVideo(): Promise<IVideoAudioType>
返回值
Promise<IVideoAudioType>
详情
本地开启摄像头后,将采集指定的摄像头设备资源,如未指定,则采集系统默认摄像头设备资源,采集成功后,远端将看到本地画面;
推送自定义Track轨道流
XYRTCClient.publish(track: VideoAudioTrack | ContentTrack): void
兼容
参数
参数 | 类型 | 描述 | 兼容 |
track | 创建的Track模块 | - |
详情
采集完成视频流后,通过执行此方法将视频流推送到媒体流服务器,并进行Web和媒体通道的连接;
销毁音频分析器,释放资源
XYRTCClient.removeAudioAnalyser(id?: string): void | IReturnResult
兼容
参数
参数 | 类型 | 描述 | 兼容 |
id | string | 参会者Layout Id | - |
详情
组件销毁时,清理历史获取到的音频分析器资源
通话字幕: 设置本地说话的语言
XYRTCClient.setTranslationLanguage(language: TLocalLanguage): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
language | 通话字幕,本地说话的语言,支持英文、中文 | - |
返回值
Promise<IReturnResult>
详情
开启字幕功能后,调用此方法可以设置本地讲话的语言类型;
设置上下行视频的分辨率和帧率
XYRTCClient.setVideoProfile(direction: MEETING_DIRECTION, profile: IVideoProfile): Promise<void>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
direction | 会议上线和下行方向 | - | |
profile | 视频配置 |
返回值
Promise
详情
特殊场景下,需要控制视频上下行的分辨率和帧率,通过此方法可以设置;
开启通话字幕功能
XYRTCClient.startTranslation(): Promise<IReturnResult>
返回值
Promise<IReturnResult>
详情
开启通话字幕功能
关闭通话字幕功能
XYRTCClient.stopTranslation(): Promise<IReturnResult>
返回值
Promise<IReturnResult>
详情
关闭通话字幕功能
订阅参会者数据,通过增量消息推送出/入会参会者信息
XYRTCClient.subscribeBulkRoster(): Promise<IReturnResult>
兼容
返回值
Promise<IReturnResult>
详情
调用此方法订阅参会者数据,监听bulkRoster
事件,获取会中所有参会者信息,SDK通过增量消息推送出/入会参会者信息;
自动布局-设置指定参会者全屏显示画面;
XYRTCClient.forceFullScreen(id?: string): Promise<string>
参数
参数 | 类型 | 描述 | 兼容 |
id | string | 参会者Layout Id,如果为空,则退出全屏显示 | - |
返回值
Promise
详情
自动布局下,需要将特定的画面设置为全屏显示,通过Layout ID来实现。在退出全屏模式时,可调用此方法并将ID设置为空;
音频播放异常情况下,重新播放会中声音
XYRTCClient.playAudio(): Promise<void>
返回值
Promise
详情
会中音频播放异常情况下,重新播放会中声音;
画面播放异常情况下,重新播放本地视频
XYRTCClient.playLocalVideo(): Promise<void>
返回值
Promise
详情
会中视频播放异常情况下,需要重新播放视频画面;
画面播放异常情况下,重新播放指定参会终端画面
XYRTCClient.playVideo(idList?: string[]): Promise<void>
参数
参数 | 类型 | 描述 | 兼容 |
idList | string[] | Layout Id 列表,如果为空值,则播放所有画面 | - |
返回值
Promise
详情
会中画面播放异常的情况下,重新播放指定参会终端画面;
自定义布局,用于请求参会者的视频流,可以配置分辨率和帧率
XYRTCClient.requestNewLayout(reqList: IReqInfo[], maxViewCountPerPage: number, pageIndex: number, extReqList?: IReqInfo[], extParams?: object): Promise<boolean>
参数
参数 | 类型 | 描述 | 兼容 |
reqList | IReqInfo[] | 必填,请流列表数据 | - |
maxViewCountPerPage | number | 必填,每页最大显示条数,最多 9 条 | - |
pageIndex | number | 必填,当前页数 | - |
extReqList | IReqInfo[] | 可选,固定列表数据 | - |
extParams | object | 可选,控制额外的参数,暂时无需配置 | - |
返回值
Promise
详情
自定义布局,用于请求参会者成员的分辨率、质量视频数据,请求完成后,需要等待layout事件响应请流结果;
自定义布局-自动轮询请求参会者的视频流
XYRTCClient.requestAutoPollingLayout(command: TCommand, interval: number | undefined, reqList: IReqInfo[]): Promise<boolean>
参数
返回值
Promise
详情
教育场景下,需要自动轮询请求参会者视频流画面,使用此方法;
移除音频播放容器元素,释放资源
XYRTCClient.removeAudioRender(key: string): void
参数
参数 | 类型 | 描述 | 兼容 |
key | string | MediaStream的Id字段 | - |
详情
组件销毁时,指定此方法主动释放资源
移除视频播放容器元素,释放资源
XYRTCClient.removeVideoRenderer(id: string): void
参数
参数 | 类型 | 描述 | 兼容 |
id | string | 参会者Layout Id | - |
详情
组件销毁时,指定此方法主动释放资源
移除重复视画面频播放容器元素,释放资源
XYRTCClient.removeSlaveVideoRenderer(id?: string, viewId?: string): void
兼容
参数
参数 | 类型 | 描述 | 兼容 |
id | string | 可选,参会者Layout Id,如果未指定,则释放所有重复画面资源 | - |
viewId | string | 可选,包裹video组件的元素id,此元素一定要提供宽高信息,内部会基于此宽高信息计算video的旋转信息 |
详情
组件销毁时,指定此方法主动释放资源
设置音频播放容器元素,SDK接管控制音频的播放
XYRTCClient.setAudioRenderer(streamId: string, ele: HTMLAudioElement): Promise<void>
参数
参数 | 类型 | 描述 | 兼容 |
streamId | string | mediaStream流ID,可通过监听audio-track事件获取 | - |
ele | HTMLAudioElement | 播放音频的audio Element元素 | - |
详情
通过监听audio-track
事件,获取音频MediaStream ID,同时提供audio元素,由SDK接管控制会中音频的播放;
audio-track
消息时调用,会推送最多14路音频数据,需全部执行一次播放自动布局-本地切换主画面
XYRTCClient.setFocusView(id: string): Promise<string>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
id | string | 主画面的Layout Id | - |
详情
移动端进行大小画面切换时,可调用此方法进行主画面切换,仅适用于本地端显示。如果需要全会议级别响应,可以通过会控设置焦点画面;
自动布局-翻页查看更多参会者画面
XYRTCClient.setPageInfo(currentPage?: number): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
currentPage | number | 请求的页码数 | - |
详情
自动布局下,翻页查看更多参会者画面,调用完成后,通过page-info
事件,获取最终的分页数据信息;
设置视频播放容器元素,SDK接管控制视频的播放和画面渲染
XYRTCClient.setVideoRenderer(id: string, wrapEleId: string): void
参数
参数 | 类型 | 描述 | 兼容 |
id | string | 参会者Layout Id | - |
wrapEle | string | 包裹video组件的元素id,此元素一定要提供宽高信息,内部会基于此宽高信息计算video的旋转信息 | - |
详情
通过监听layout事件,获取到可展示的参会者列表数据在页面中渲染,此时需要针对每个参会者调用一次此方法绑定渲染容器Id信息,由WebSDK内部开始接管视频的播放和画面渲染;
设置本地视频渲染参数
XYRTCClient.setLocalViewParams(params: LocalViewParams): Promise<IReturnResult>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
params | 本地视频渲染数据,包含是否镜像显示 | - |
返回值
Promise<IReturnResult>
详情
设置本地画面镜像显示;
设置重复画面视频播放容器元素,SDK接管控制视频的重复播放和画面渲染
XYRTCClient.setSlaveVideoRenderer(id: string, wrapEleId: string): void
兼容
参数
参数 | 类型 | 描述 | 兼容 |
id | string | 参会者Layout Id | - |
wrapEleId | string | 包裹video组件的元素id,此元素一定要提供宽高信息,内部会基于此宽高信息计算video的旋转信息 | - |
详情
设置重复画面视频播放容器元素,SDK接管控制控制画面重复播放操作;
自动布局-切换显示布局模式,默认是演讲者模式(SPEAKER)
XYRTCClient.switchLayout(templateMode?: IMode): Promise<IMode>
参数
参数 | 类型 | 描述 | 兼容 |
templateMode | 布局模式 | - |
返回值
Promise<IMode>
详情
自动布局下切换显示布局模式,默认演讲者模式(SPEAKER)。可切换:演讲者模式、画廊模式、共享内容时的多种模式;
自动布局-设置布局配置
XYRTCClient.setLayoutConfig(config: LayoutConfig): void
兼容
参数
参数 | 类型 | 描述 | 兼容 |
config | 布局相关配置 | - |
详情
自动布局模式下,针对布局的一些特殊设置,例如本地共享时,布局是否需要强制宫格布局等;
自动布局-设置移动端布局方向
XYRTCClient.setLayoutOrientation(orientation: LayoutOrientationType): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
orientation | 布局方向: MOBILE_HORIZONTAL(横屏)、MOBILE_VERTICAL(竖屏) | - |
返回值
Promise<IReturnResult>
详情
自动布局下是移动端入会,可通过此方法切换布局方向;
自动布局-会中动态切换显示/隐藏本地画面
XYRTCClient.setHideLocalView(state: boolean): Promise<{status: boolean}>
参数
参数 | 类型 | 描述 | 兼容 |
state | boolean | 显示/隐藏状态|Boolean值|true代表隐藏本地画面,false代表显示本地画面 | - |
返回值
Promise<{status: boolean}>
详情
加入会议之后,需要切换显示/隐藏本地画面,显示更多的远端画面可以调用此方法设置;
自动布局-手动触发更新布局列表中的位置和尺寸信息
XYRTCClient.updateLayoutSize(): void
详情
当页面窗口或元素Dom大小变化时,可调用此方法更新Layout列表信息;
autoResizeLayout
为false,以关闭内部的事件处理;校验会议室号和入会密码
XYRTCClient.checkMeetingNumber(params: XYCheckNumberParams): Promise<IReturnResult>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
params | 会议信息 | - |
返回值
Promise<IReturnResult>
详情
工具函数,用于校验会议号是否正确;
校验会议室入会密码
XYRTCClient.checkMeetingPassword(params: XYCheckNumberParams): Promise<IReturnResult>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
params | 会议信息 | - |
返回值
Promise
详情
工具函数,用于校验会议号入会密码是否正确;
获取会议分享详情信息
XYRTCClient.getMeetingInviteInfo(): Promise<InviteInfo>
返回值
Promise<InviteInfo>
详情
会议分享详情信息,包含会议室名称、邀请链接等信息;
获取本地的参会者数据,包含用户基本信息、会议状态信息
XYRTCClient.getSelfRoster(): IRoster
返回值
详情
隐身入会, 可调用此方法进行切换显示/隐藏状态
XYRTCClient.toggleHideId(hideId: number | string): Promise<string>
参数
参数 | 类型 | 描述 | 兼容 |
hideId | number | string | 隐身ID | - |
返回值
Promise
详情
隐身入会的情况下,调用此方法可进行互动、或再次隐身;
关联audio track与mediaGroupId通道,从而向特定通道发送音频数据
XYRTCClient.bindTrackGroup(trackType: "audio" | "video", mediagroupId: number): IReturnResult
参数
参数 | 类型 | 描述 | 兼容 |
trackType | audio | video | 控制发送通道类型,audio控制音频通道,video控制视频通道,暂时只支持audio通道 | - |
mediagroupId | number | 分组id,也称sessionId或者mediaGroupId,代表只向此分组通道发送音频数据 | - |
返回值
详情
关联audio track与mediaGroupId通道,从而向特定通道发送音频数据;
获取随机云会议室
XYRTCClient.getConference(params: IGetConferenceParams): Promise<IConference>
参数
参数 | 类型 | 描述 | 兼容 |
params | 随机会议室参数 | - |
返回值
Promise<IConference>
详情
设置调度模式下设备的声音状态
XYRTCClient.setPollingAudioStatus(type: "mute" | "unmute", callUriList: string | string[]): Promise<any>
参数
参数 | 类型 | 描述 | 兼容 |
type | "mute" | "unmute" | mute: 静音;unmute: 取消静音 | - |
callUriList | string | string[] | 操作的设备的 callUri 或者 callUri 列表 | - |
返回值
Promise
详情
开始调度设备
XYRTCClient.startMonitor(uriList: string[]): void
参数
参数 | 类型 | 描述 | 兼容 |
uriList | string[] | 需要调度的终端ID(callUri) | - |
详情
开始调度
启用多分组通道,进行多分组请流和资源创建
XYRTCClient.startMonitorGroup(mediagroupIds: Key[]): IReturnResult
参数
参数 | 类型 | 描述 | 兼容 |
mediagroupIds | Key[] | 多分组sessionId,可以配置多个或一个值 | - |
返回值
详情
停止调度设备
XYRTCClient.stopMonitor(uriList?: string[]): void
参数
参数 | 类型 | 描述 | 兼容 |
uriList | string[] | 需要停止调度的终端ID(callUri) | - |
详情
停止多分组通道,销毁资源
XYRTCClient.stopMonitorGroup(mediagroupIds: Key[]): IReturnResult
参数
参数 | 类型 | 描述 | 兼容 |
mediagroupIds | Key[] | 多分组sessionId,可以配置多个或一个值 | - |
返回值
详情
开启云端录制
XYRTCClient.startCloudRecord(): Promise<IReturnResult>
返回值
Promise<IReturnResult>
详情
会议参与人可在会议中调用此方法开启会议的云端录制,录制需要云会议室的录制权限启用,可以通过监听record-permission事件获取录制权限开关是否开启,通过监听meeting-control事件获取会控是否禁用录制设置,通过监听record-status-notification事件获取当前录制的状态(可能会被本地端开启或者远端开启录制操作)
停止云端录制
XYRTCClient.stopCloudRecord(): Promise<IReturnResult>
返回值
Promise<IReturnResult>
详情
在本地开启录制后,调用此方法可停止云端录制;
结束全体会议
XYRTCClient.endAllMeeting(): Promise<IReturnResult>
兼容
返回值
Promise<IReturnResult>
详情
会议Owner或者主持人可调用此方法结束全体会议,通过监听 notification 事件,可判断是否是主持人、通过监听 user-info 事件,可以判断是否是会议Onwer,如果是其他角色调用,会收到相应的错误码;
获取当前会议会控地址
XYRTCClient.getConfMgmtUrl(): Promise<IConfMgmtUrl | null>
返回值
Promise<IConfMgmtUrl | null>
详情
在具有主持权限的情况下,通过此方法可以获取当前会议会控地址,包含侧边栏会控、PC、移动端、专业会控地址等;
notification
事件,获取是否有主持权限,如果有主持权限,则可调用此方法轮询手动切换到下一页
XYRTCClient.nextPollingPage(): void
兼容
详情
会控轮询多画面时,可通过此方法主动切换轮询画面到下一页;
取消举手
XYRTCClient.onHandDown(): Promise<boolean>
返回值
Promise
详情
举手发言后,可调用此方法取消举手;
举手发言
XYRTCClient.onHandUp(): Promise<boolean>
返回值
Promise
详情
监听meeting-control
消息,如果被设置为强制静音,可调用此方法举手发言;
结束发言
XYRTCClient.onMute(): Promise<boolean>
返回值
Promise
详情
主持人允许发言后,可调用此方法结束发言;
修改本地参会者名称
XYRTCClient.rename(newName: string): Promise<IReturnResult | undefined>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
newName | string | 新名称 | - |
返回值
Promise<IReturnResult | undefined>
详情
本地参会者可修改自己的入会名称,同步更新给会中所有人和会控;
通知会控打开/关闭摄像头结果
XYRTCClient.sendVideoControlResult(type: "muteVideo" | "unMuteVideo", data: IVideoControlResult): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
type | 'muteVideo' | 'unMuteVideo' | 结果类型 | - |
data | 数据详情 | - |
返回值
Promise<IReturnResult>
详情
会控指定参会者打开当前设备的摄像头,收到后可通知最终的操作结果;
签到
XYRTCClient.signIn(questionnaireId: string): Promise<IReturnResult>
参数
参数 | 类型 | 描述 | 兼容 |
questionnaireId | string | 业务id,可监听 | - |
返回值
Promise<IReturnResult>
详情
通过监听interactiveToolInfo
事件获取会控下发的签到信息,调用此方法进行签到;
设置焦点画面
XYRTCClient.startMeetingFocusView(id: string): Promise<IReturnResult>
兼容
返回值
Promise<IReturnResult>
详情
通过会控焦点画面方式指定参会者成为全会议的焦点大画面,需要主持人权限才可操作;
取消焦点画面
XYRTCClient.stopMeetingFocusView(id: string): Promise<IReturnResult>
兼容
返回值
Promise<IReturnResult>
详情
调用此方法取消全局设置的焦点画面终端,参会者布局恢复成正常模式;
校验会控主持密码
XYRTCClient.verifyControlPassword(pwd: string): Promise<IReturnResult>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
pwd | string | 会控主持密码 | - |
返回值
Promise<IReturnResult>
详情
在会议中打开参会者后,可以通过输入密码转为主持人角色,通过此方法验证会控主持密码是否正确,如果正确则角色变更为主持人角色;
挂断会议,销毁资源
XYRTCClient.destroy(reason?: string, blockSendSocket?: boolean): Promise<boolean>
参数
参数 | 类型 | 描述 | 兼容 |
reason | string | 可选,挂断原因,默认是"OK" | - |
blockSendSocket | boolean | 可选,是否阻止发送Socket挂断消息,默认是false,不阻止 |
返回值
Promise
详情
取消注册监听事件
XYRTCClient.off(key: XYClientEventKey): void
参数
参数 | 类型 | 描述 | 兼容 |
key | 取消监听注册的事件Key值 | - |
详情
SDK通过事件的形式上报会议相关数据,开发者根据自身业务自行决定需要注册监听相应的事件,再使用完成后,需要及时取消注册事件;
通过媒体通道发送自定义消息,支持广播和指定参会者消息
XYRTCClient.sendCustomMessage(config: ICustomMessageConfig): IReturnResult
参数
参数 | 类型 | 描述 | 兼容 |
config | 配置参数 | - |
返回值
详情
发送广播或者指定消息,远端可以监听custom-message-recv事件获取广播消息;
设置服务器地址
XYRTCClient.setServerAddress(serverInfo: XYServerInfo): void
兼容
参数
参数 | 类型 | 描述 | 兼容 |
serverInfo | 服务器地址配置,格式:IP/域名 + 端口(可选),如: cloudapi.xylink.com:443 | - |
详情
应用可随时切换服务器地址,切换完成后,需要重新登录;
切换调试模式,控制发送和接收路所有流质量数据上报,通过监听 meeting-stats 事件获取数据
XYRTCClient.switchDebug(status: boolean): Promise<boolean>
参数
参数 | 类型 | 描述 | 兼容 |
status | boolean | 是否开启debug模式 | - |
返回值
Promise
详情
动态切换功能开关
XYRTCClient.switchFeatureConfig(key: IFeatureConfigKey, value: IFeatureConfigValue<IFeatureConfigKey>): Promise<IReturnResult>
兼容
参数
参数 | 类型 | 描述 | 兼容 |
key | 功能的Key值 | - | |
value | IFeatureConfigValue | boolean值类型,是否启用某一项功能开启/关闭 | - |
详情
暂时只支持enableAutoResizeLayout
和enableLowResolution
开启支持动态设置;
会控清除举手事件
XYRTCClient.on('cancel-handup', (e: boolean) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | boolean | 是否清除举手状态,true代表清除,false代表不清除 | - |
详情
会控操作清除举手,SDK会收到此消息;
焦点画面事件,可通过会控对终端设置/取消焦点画面;自动布局下,焦点画面会保持在演讲者布局的大窗口上;
XYRTCClient.on('focus-view', (e: IRoster | null) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 焦点画面信息 | - |
详情
通过会控或startMeetingFocusView对终端设置/取消焦点画面,监听此事件可以获取当前焦点画面信息;
会控发起签到消息
XYRTCClient.on('interactiveToolInfo', (e: InteractiveToolInfo) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 会控消息,包含签到消息 | - |
详情
加入会议后,会议主持人可以通过会控页面发起成员签到服务,签到发起后,WebSDK会收到此消息,通过CopyWriting数据结构展示签到提示框内容,使用signin方法完成签到;
会控消息,包含麦克风静音/非静音、是否强制静音、主会场设备、对话模式、轮询多画面控制等状态和信息
XYRTCClient.on('meeting-control', (e: IMeetingControl) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 会控消息,包含麦克风静音/非静音、是否强制静音、主会场设备、对话模式等状态和信息 | - |
详情
会控消息,上报会控相关的状态/权限/基础信息;
会控申请开启/关闭摄像头消息、提示消息
XYRTCClient.on('meeting-control-video', (e: IMCVideoEvent) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 消息内容,包含主持端得到远端开启摄像头结果的提示消息体、会控推送开启/关闭摄像头消息体 | - |
详情
会控申请打开指定参会者的摄像头,被申请者收到此事件后,可以应答是否响应开启摄像头操作;
会控联席主持人/主持人/改名权限变更事件
XYRTCClient.on('notification', (e: XYNotification) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 联席主持人/主持人/改名权限 等消息 | - |
详情
加入会议成功后,可通过此事件获取当前参会者的角色身份;
会控启用/关闭等候室事件
XYRTCClient.on('onhold', (e: boolean) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | boolean | 会议呼叫等待状态,true代表在等候室,false代表未在等候室 | - |
详情
会控或者云会议室设置开启等候室后,当前参会者接收不到远端画面和声音,需等待主持人移除等候室后即可再次加入会议;
会控点名/滚动字幕事件
XYRTCClient.on('sub-title', (e: ISubTitleContent) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 字幕消息内容,包含内容、字体、背景等 | - |
详情
会控发送字幕或对终端进行点名时,SDK会上报此事件,业务需要响应字幕详细,在会议布局中显示滚动字幕,包含字体,内容,背景等配置
本地麦克风状态
XYRTCClient.on('audio-status', (e: XYMeetingDeviceStatus) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 本地麦克风开启、关闭状态 | - |
详情
加入会议后,监听此方法获取麦克风实时开启/关闭状态,此方法会基于本地设备操作或远端会控等控制实时更新,方便业务做提醒和UI更新使用;
会议呼叫状态事件
XYRTCClient.on('call-status', (e: IReturnResult) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 呼叫状态,包含呼叫状态码,描述信息等,详细见错误码,常见错误如下: XYSDK:950517: '媒体协商连接失败,请检查' XYSDK:950518: '加入会议成功' XYSDK:950519: '正在连接媒体服务,请等候' XYSDK:950522: '媒体协商ICE Candidate失败,请检查媒体网关服务' XYSDK:950523: '媒体协商响应Answer失败,请检查媒体网关服务' XYSDK:950524: '媒体协商创建Offer失败,请检查' XYSDK:950525: '媒体连接失败,请检查信令和媒体服务连接状态' XYSDK:950526: '媒体未推送轨道(Track)数据,请检查媒体网关服务' XYSDK:950527: '媒体服务连接异常,请检查UDP端口状态' | - |
详情
入会之前监听此消息,获取呼叫会议的连接状态,最大连接40s时间,中间会有不同连接状态上报。默认情况下,大概1-3s加入会议成功;
当前会议室信息事件
XYRTCClient.on('conference-info', (e: IConferenceInfo) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 会议室信息,包含会议号码、会议ID、名称、邀请信息等 | - |
兼容
详情
获取详细的呼叫会议室信息,包含会议室配置,基础信息,邀请链接,会议主持人(初始入会状态)信息等;
强制挂断会议消息,收到此消息时,需要进行退出会议操作
XYRTCClient.on("disconnected", (e: IReturnResult)=> {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 消息内容,包含退会原因、错误码等,详细见错误码 | - |
详情
强制离开会议,包含以下几种情况:
1、会控挂断终端
2、会控结束全体会议
3、呼叫被限制等异常情况
4、因网络原因引起的wss断开导致的退会
5、Peer连接异常等情况
企业配置信息(头像配置、禁用语音转写英文翻译)
XYRTCClient.on("enterprise-config", (e: IEnterpriseConfig)=> {});
兼容
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 企业配置信息 | - |
详情
获取企业配置,例如头像开关配置、语音转写英文翻译开关等
轮询状态事件
XYRTCClient.on("layout-state", (e: LayoutState)=> {});
兼容
回调参数
参数 | 类型 | 描述 | 兼容 |
e | Layout状态,当前仅支持上报轮询多画面状态 | - |
详情
会控开启轮询多画面时,SDK会转为轮询多画面布局方式,同时上报对应的轮询状态提供给业务进行相应事件处理;
媒体迁会状态
XYRTCClient.on('media-changed-migrate', (e: boolean) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | boolean | 是否迁会,true代表迁会,未迁会不会下发此消息 | - |
登录用户信息和个人云会议室信息数据
XYRTCClient.on('user-info', (e: IExportUserInfo) => {});
兼容
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 用户和对应个人云会议室信息数据 | - |
详情
返回登录用户个人基础信息和个人云会议室基础信息;
本地摄像头状态事件
XYRTCClient.on('video-status', (e: XYMeetingDeviceStatus) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 本地摄像头开启、关闭状态 | - |
加入会议后,监听此方法获取摄像头实时开启/关闭状态,此方法会基于本地设备操作或远端会控等控制实时更新,方便业务做提醒和UI更新使用;
会议人员数量/共享内容/主会场等发生变化事件
XYRTCClient.on('conf-change-info', (e: IConfInfo) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 包含参会者人员数量/共享内容/主会场/等候室人员数量等 | - |
详情
会议状态和参会人员发生变化,包含参会者人员数量、共享内容、主会场以及等候室人员数量等,SDK会上报此事件,可以通过监听此事件,根据需求进行相应的处理请流;
当前正在共享内容的参会者详细信息
XYRTCClient.on('content', (e: { data: IRoster }) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | { data: IRoster } | 当前正在共享内容的参会者详细信息,包含基本信息,设备信息,画面信息等 | - |
自动布局-布局容器尺寸变化事件
XYRTCClient.on('container-resize', (e: ResizeData) => {});
兼容
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 元素尺寸数据 | - |
自动布局-参会人员强制全屏显示事件
XYRTCClient.on('force-full-screen', (e: string) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | string | 全屏对象Roster Id信息 | - |
详情
调用forceFullScreen
方法后,监听此事件可以获取到全屏对象的Roster ID信息,如果退出全屏则为空;
参会成员布局列表数据,包含参会者基本信息、位置、尺寸、旋转等数据(自定义布局不包含位置、尺寸、旋转数据)
XYRTCClient.on('layout', (e: ILayout[]) => ());
回调参数
参数 | 类型 | 描述 | 兼容 |
e | ILayout[] | 布局结果数据 | - |
详情
请流完成后会返回布局结果数据,包含当前布局模式的参会人员状态、基本信息数据,业务直接使用此数据渲染最终的参会者数据即可;有如下可能导致重新推送此数据的时机:
1、自动布局,当会议的状态产生变化时,会重新推送此消息
2、自定义布局,当重新发送请流,会重新推送此消息
3、屏幕/布局容器大小变化时,会推送新的信息
4、布局模型变化后,会推送新的信息
自动布局-分页数据
XYRTCClient.on('page-info', (e: IPageInfo) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 自动布局,布局分页数据,包含页码、总页数等 | - |
详情
自动布局下,调用了分页接口查看更多参会者画面后,会通过此消息返回最终的页码数据,业务侧可以基于此消息更新页面信息;
参会者视频画面旋转信息
XYRTCClient.on('rotation-change', (e: IRotationInfoTotalItem[]) => ());
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 屏幕旋转信息 | - |
详情
会议成员屏幕旋转信息,用于处理横竖屏切换显示,自定义布局需要处理此信息;
自动布局,显示布局画面容器尺寸数据
XYRTCClient.on('screen-info', (e: IScreenInfo) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 容器尺寸数据,包含高度、宽度等 | - |
详情
自动布局,实时上报布局画面容器尺寸数据,支持屏幕 resize 变化。 自定义布局不需要监听此数据;
自动布局-当前布局模式
XYRTCClient.on('template-mode', (e: IMode) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 当前布局模式,包含演讲者模式、画廊模式等 | - |
详情
自动布局,实时上报当前布局模式;
音频轨道Tracks数据
XYRTCClient.on('audio-track', (e: ICustomStreamTrack[]) => ());
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 音频Track列表数据 | - |
详情
音频Track列表数据,用于会议中播放所有远端参会者的声音,业务上需要默认全部播放,后续不再关注声音播放问题,由SDK控制通道数据;
订阅Roster事件(参会者数据)
XYRTCClient.on('bulkRoster', async (e: IBulkRoster) => {});
兼容
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 参会者成员信息 | - |
详情
监听全量订阅参会者数据,可以在入会首次接收到全部参会者信息,之后,如果有其他成员入会、退会、状态变化,会通过增量数据推送;
参会者出入会事件
XYRTCClient.on('in-out-reminder', (e: IReminder[]) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 出入会参会者信息,包含出入、入会状态,参会者名称等; | - |
详情
在会议中,参会者加入或退出时,将收到相应的事件上报信息;
本地端网络质量等级
XYRTCClient.on('networkLevel', (e: NetworkQualityLevel) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 网络质量信号等级,分四个等级,分别是:Bad、Poor、Good、Excellent | - |
详情
会议中,使用此事件监听获取本地端网络情况,基于不同的网络情况调整视频和布局策略,保证会议的稳定性,并基于一定的用户提示,例如在Bad网络下,提醒用户更新网络环境;
远端参会者网络等级,每隔5s推送一次数据
XYRTCClient.on('networkParameter', (e: INetworkParameter) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 远端网络质量信号等级 | - |
详情
会议中,使用此事件监听获取远端参会者的网络情况,推送频率是每个参会者5秒推送一次;
会议总人数事件
XYRTCClient.on('participants-count', (e: {participantsNum: number}) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | {participantsNum: number} | 当前会议参会者总人数,包含共享内容、指挥调度客户端等设备数量, 包含Local | - |
详情
会议中展示当前会议总人数时使用此事件,实时获取最新的会议人数;
参会者列表事件(仅上报前20路,包含本地数据)
XYRTCClient.on('roster', (e: { rosters: IRoster[]} ) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | { rosters: IRoster[]} | 参会者列表数据,包含基本信息,设备信息,画面信息等 | - |
详情
实时参会者列表数据,按照优先级上报最多20条数据;如果开启隐藏本地画面,则数据中不包含本地信息;
前20路参会者数据排序优先级:共享内容->主会场->本地->AS终端->开启摄像头+麦克风终端->开启麦克风终端->开启摄像头终端->关闭摄像头+麦克风终端;
语音激励人员信息
XYRTCClient.on('speaker-inforster', (e: ISpeakerInfo ) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 语音激励消息,当有最大声量变化时,最短3s推送一次 | - |
详情
此消息推送的AS设备会响应到演讲者布局的大窗口上,当切换参会者时,对应大窗口画面会跟随变化;如需固定大窗口画面,可以使用焦点画面方法固定大窗口参会者;
实时讲话人信息,最多三路数据,包含本地数据
XYRTCClient.on('speakers-info', (e: XYSpeakersInfo) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 实时讲话人列表信息 | - |
详情
需要通过设置setFeatureConfig
中的enableSpeakerInfo
属性为true启用推送实时讲话人信息。一旦启用,当会议中的讲话人发生变化时,每隔2秒推送一次消息,如果没有变化,则不会推送;
setFeatureConfig
方法启用实时讲话人开关,调用getAudioAnalyser方法获取音频分析器,可以获取对应讲话人的实时音量大小;实时通话字幕内容
XYRTCClient.on('translation-content', (data: ITranslationContent) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 通话字幕内容 | - |
详情
调用startTranslation
方法启用通话字幕功能后,当会议中的参会者说话时,SDK会上报相应参会者说话的内容;
视频轨道事件
XYRTCClient.on('video-track', (e: ICustomStreamTrack[]) => ());
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 视频Track列表数据 | - |
详情
一般情况下,无需使用此事件获取所有参会者MediaStream数据,可通过getVideoStream方法获取具体参会者视频流;
多分组通道信息事件
XYRTCClient.on('multi-group-info', (e: XYMultiGroupInfo) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 多分组通道信息,包含有多分组通道的参会者信息等 | - |
详情
WebSDK支持媒体多分组能力,可以基于不同的媒体通道发送给不同端音视频数据;当会议支持多分组能力后,SDK会上报非0/1的分组通道给业务,由业务决定启用具体的分组通道,并在特定的分组通道传输音视频流;
调度成功事件
XYRTCClient.on('start-monitor-report', (e: XYMonitorEvent) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 调度成功和失败的设备列表数据 | - |
详情
调度结果数据,返回成功和失败调度设备数据;
调度失败状态
XYRTCClient.on('stop-monitor-report', (e: IReturnResult);
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 开启、结束调度失败状态,包含错误码和原因,详见错误码 | - |
详情
调度停止,释放整个链路资源;
本地录制结果上报
XYRTCClient.on('recording-state-changed', (e: IRecordingStateChanged) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 本地录制成功、失败状态信息、及录制sessionId | - |
详情
调用startCloudRecord
方法启动录制后,通过监听此事件可获取本地录制结果;
远端(或会控)录制状态通知
XYRTCClient.on('record-status-notification', (e: IRecordStatusNotification) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 远端(或会控)录制状态、及录制sessionId | - |
详情
远端或会控开启、停止录制,通过监听此事件可获取对应状态;
录制权限事件
XYRTCClient.on('record-permission', (e: IRecordPermission) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 录制权限信息 | - |
详情
当前云会议室录制权限,如果没有权限,则本地不可进行录制,录制权限可以在管理平台云会议室设置中开启;
远端推送的自定义消息
XYRTCClient.on('custom-message-recv', (e: IReceiveCustomMessage) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 远端推送的自定义消息 | - |
详情
通过媒体通道接收到的自定义消息内容,可以是指定参会者消息或者是广播消息;
错误事件
XYRTCClient.on('error', (e: IReturnResult) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 错误消息内容,详见错误码 | - |
详情
上报SDK内部各种异常信息;
会议质量数据,包含接收/发送方的分辨率、带宽、码率、帧率、丢包等调试数据,如果开启调试模式,每 4s 会推送一条数据;
XYClient.on('meeting-stats', (e: IInternals) => ());
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 会议质量数据、参会者接收和发送质量数据、音/视频发送质量数据 | - |
详情
调用switchDebug
方法开启调试模式后,通过此事件可获取会议质量数据,包含接收/发送方的分辨率、带宽、码率、帧率、丢包等调试数据。此数据每隔4秒推送一次;
switchDebug
音/视频播放失败信息
XYClient.on('play-failed', (e: XYPlayFailedInfo) => {});
回调参数
参数 | 类型 | 描述 | 兼容 |
e | 播放失败详细信息,包含类型、streamId等 | - |
详情
浏览器安全策略,部分移动端浏览器需要一定的交互行为才可以触发音频/视频播放,否则会导致音视频播放失败,此时需要监听此消息,获取播放的类型,重新播放;