创建一个音视频客户端对象(client),提供实时音视频通话框架能力。一次会议创建一次 client 对象即可。
const client = xyRTC.createClient(config: IClientConfig): Client;
interface IClientConfig {
// 网关校验
// 此值可以从企业管理平台创建应用获取,或者联系项目对接负责人获取
// 必填 | "" | 网关id(clientId)
clientId: string;
// 网关密钥
// 兼容:v2.1.1+
// 此值可以从企业管理平台创建应用获取,或者联系项目对接负责人获取
// 必填 | "" | 网关密钥(clientSecret)
clientSecret: string;
// 兼容:v3.8.0+
// 从v3.8.0+,服务地址只需配置server,无需再配置wssServer/httpServer/logServer
// 非必填项:服务地址,默认使用正式环境;配置示例:cloudapi.xylink.com
server?:string;
// v3.8.0之前的版本需要配置 wssServer
// 非必填:websocket服务地址,默认使用正式环境,
wssServer?: string;
// v3.8.0之前的版本需要配置 httpServer
// 非必填:reset api服务地址,默认使用正式环境
httpServer?: string;
// v3.8.0之前的版本需要配置 logServer
// 非必填:log server服务地址,默认使用正式环境
logServer?: string;
// 非必填 | "auto" | 布局模式:auto/custom
layout?: IClientLayout;
// 非必填|false:是否接收所有收发路流的状态数据,默认是不发送
debug?: boolean;
// 非必填 | false | 代表开启麦克风入会
muteAudio?: boolean;
// 非必填 | false | 代表开启摄像头入会
muteVideo?: boolean;
// 非必填 | {} | 配置 layout container 容器
container?: {
// 非必填 | [] | 配置上下左右的偏移量
offset?: number[]; // 上 下 左 右
// 非必填 | "" | 配置Layout需要包裹的元素节点ID,并使用此元素的信息计算Layout的size和position
elementId?: string;
};
// 非必填 | false | 是否隐藏 Local 画面入会,默认不隐藏
localHide?: boolean;
// 非必填 | true | 是否需要镜像 Local 画面入会,默认镜像显示 Local 画面
localMirror?: boolean;
// 非必填 | "" | 布局模式,默认:SPEAKER
templateMode?: ITemplateModel;
// 非必填 | false | 是否响应企业带宽配置,默认是false,不响应
bandwidthSetting?: boolean;
// 非必填 | false | 是否是混合云,默认公有云。 如果有探测到内网地址,则此值为true,将不进行鉴权。
isSupportHybridCloud?: boolean;
// 兼容:v3.8.0+
// 非必填 | true | 是否需要检测SSL。默认检测,需使用HTTPS协议
checkSSL?: boolean;
// 非必填 | '' | 隐身入会模式,需要开通相应SDK会议室权限
// HIDE: 可忽略,暂未对外
// SDKMonitor+hide: SDK隐身入会模式,在创建SDK会议号室,控制权限开关;
__hideId?: "" | 'HIDE' | "SDKMonitor+hide"
// 是否是巡课模式,默认是'',MONITOR代表巡课模式
__monitorMode?: "" | "MONITOR"
}
// Layout画面部署类型:SPEAKER | GALLERY;
// GALLERY:画廊模式,会对等均分画面
// SPEAKER:演讲者模式,按照1大N小窗口展示画面
type ITemplateModel = 'SPEAKER' | 'GALLERY'
创建一个音视频流对象(stream),用来管理 Local 预览流/Remote 流。
const stream = xyRTC.createStream(): Stream
无登录模式调用,需要在 createClient 前配置 client_id、client_secret和网关token object信息,用于网关签名计算和接口安全校验。
xyRTC.setConfig(config: IConfig): void;
interface IConfig {
client_id: string;
client_secret: string;
access_token: string;
signSecret: string;
refresh_token?: string;
domain?: string;
expires_in?: string;
openid?: string;
scope?: string;
signType?: any;
token_type?: string;
}
检测桌面端浏览器是否支持 WebRTC
兼容:v2.0.3+ 开始,此方法返回值转为了Promise对象,需要注意兼容;
xyRTC.checkSupportWebRTC(): Promise<ICheckSystemRequirements>;
interface ICheckSystemRequirements {
result: boolean;
detail: {
isSupportRTC: boolean;
isSupportWebsocket: boolean;
isSupportH264: boolean;
isSupportBrowser: boolean;
};
}
检测移动端浏览器是否支持 WebRTC
xyRTC.checkSupportMobileWebRTC(): Promise<ICheckSystemRequirements>;
interface ICheckSystemRequirements {
result: boolean;
detail: {
isSupportRTC: boolean;
isSupportWebsocket: boolean;
isSupportH264: boolean;
isSupportBrowser: boolean;
};
}
检测浏览器是否支持分享 Content
xyRTC.checkSupportShareContent(): boolean
预览、设置功能使用,关闭 Stream 流,包含 stream 里面的所有 track 轨道数据。
xyRTC.closePreviewStream(stream: MediaStream): void
预览、设置功能使用,用于切换输出音频设备。
xyRTC.setOutputAudioDevice(audioElement: HTMLAudioElement, outputValue: string): void
设置 SDK 国际化语言
xyRTC.setLocale(language: TLocale): void;
// 国际化,目前只支持 英文、中文、繁体
type TLocale = 'en_US' | 'zh_CN' | 'zh_TW'