本文介绍Web端SDK提供的类和方法。
重点接口类简介
RoomEngine:Room的全局管理类单例,需要全局初始化一次,负责鉴权、登入、登出等。
RoomChannel:提供关于直播间以及插件能力调用。
方法列表
RoomEngine方法
方法 | 参数 | 描述 | 是否为异步方法 |
getInstance | 获取RoomEngine实例 静态方法,使用方法为 | 同步 | |
init | config: Config | 初始化config数据
| 同步 |
auth | userId: string | 鉴权登录 | 异步 |
logout | 登出 | 异步 | |
getRoomChannel | roomId: string | 获取RoomChannel实例 | 异步 |
getDeviceId | 获取deviceId | 同步 | |
getSingleDeviceId | 无多标签页场景时获取deviceId 主要用于hybrid场景和微信小程序内嵌页面场景,与getDeviceId互斥。 | 同步 | |
getRoomList | pageIndex: number pageSize: number | 分页获取当前应用下直播间列表 pageIndex从1开始。 | 异步 |
getRoomDetail | roomId: string | 获取直播间信息 | 异步 |
getClassInstance | 获取课堂实例 | 异步 | |
reconnect | 在断开后重连 | 异步 | |
setIsAutoInitRtc | isAuto: boolean | 设置是否自动初始化RTC底层服务
| 同步 |
RoomChannel方法
方法 | 参数 | 描述 | 是否为异步方法 |
getPluginService | pluginId: PluginId | 获取各个插件实例 其中rtc、wb、doc实例只可以在完全版SDK中获取。
| 同步 |
enterRoom | nick: string extension?: BasicMap<string | number> | 进入直播间并获取直播间信息 返回值为roomDetail。
| 异步 |
getRoomDetailAsync | 异步获取当前的直播间信息 与RoomEngine上的getRoomDetail方法的不同在于不用传参数。 | 异步 | |
leaveRoom | needDestroy?: boolean | 离开直播间 离开房间时必须调用,否则会出现数据异常。 在RTC场景下,主播可以增加needDestroy参数,为true会销毁会议。 | 异步 |
updateNotice | notice: string | 更新直播间公告 仅主播可用。 | 异步 |
updateTitle | title: string | 更新直播间标题 仅主播可用。 | 异步 |
listUser | pageIndex: number pageSize: number | 分页获取直播间用户在线列表 pageIndex从1开始。 | 异步 |
kickUser | userId: string | 踢出直播间用户 | 异步 |
ChatService方法
方法 | 参数 | 描述 | 是否为异步方法 |
getChatDetail | 获取互动详情 包括点赞数、是否被禁言等。 | 异步 | |
sendComment | comment: string | 发送弹幕 | 异步 |
sendLike | 点赞 内置合流操作,两秒执行一次发送点赞,集合所有期间的点赞数,可以支持连续点赞操作。 | 同步 | |
listComment | sortType: 0 | 1 pageIndex: number pageSize: number | 分页拉取弹幕 sortType即排序方式:
pageIndex从1开始。 | 异步 |
banAllComment | 全体弹幕禁言 仅主播可用。 | 异步 | |
cancelBanAllComment | 取消全体弹幕禁言 仅主播可用。 | 异步 | |
banComment | userId: string muteSeconds: number | 禁言某个用户 仅主播可用,muteSeconds单位为秒。 | 异步 |
cancelBanComment | userId | 取消某个用户的禁言 仅主播可用。 | 异步 |
sendCustomMessageToUsers | body: string receiverList: string[] | 发送自定义消息给指定用户 | 异步 |
sendCustomMessageToAll | body: string | 发送自定义消息给房间所有用户 | 异步 |
LiveService方法
方法 | 参数 | 描述 | 是否为异步方法 |
getLiveDetail | 获取直播详情 获取当前房间的直播详情,若直播结束则获取不到。已经结束的直播详情可通过 | 异步 | |
setPlayerConfig | config: PlayerParams | 设置播放器创建参数 具体设置参数请参见播放器参数。 | 同步 |
tryPlayLive | 开始尝试拉流播放 | 异步 | |
createPlayer | 创建播放器 适用于需要自己创建播放器的场景,如点播,等同于直接接入AliPlayer,如果已经调用tryPlayLive则无效。 | 异步 | |
startPlay | url?: string | 播放器开始播放 URL可以不填,如果有,则会播放该url,如未创建播放器则创建一个。如果没有,则仅调用开始播放。 | 同步 |
pausePlay | 播放器暂停播放 | 同步 | |
destory | 销毁播放器 | 同步 | |
stopPlay | 结束播放并销毁播放器 | 同步 | |
setMutePlay | mute: boolean | 静音播放 mute: true为静音。 | 同步 |
setVolume | volume: number | 设置音量 参数为0-1之间的数字。 | 同步 |
getCurrentPDT | 获取当前播放器时间戳 仅部分m3u8格式支持。 | 同步 | |
startLiveTiming | 开始播放时,上报开始时间 用于数据统计。 | 异步 | |
endLiveTiming | 结束播放时,上报结束时间 用于数据统计。 | 异步 |
播放器参数
interface PlayerParams {
// 封装参数
protocal?: 'http' | 'https'; // 强制在tryPlayLive中使用http或https协议的播放地址
useArtc?: boolean; // 是否使用超低延时直播,默认为true
aliplayerSdkVer?: string; // 指定AliPlayer的版本,如2.9.14
// 下面是AliPlayer的参数
id?: string;
source?: string;
playauth?: string;
width?: string;
height?: string;
videoWidth?: string;
videoHeight?: string;
preload?: boolean;
cover?: string;
useH5Prism?: boolean;
autoplay?: boolean;
isLive?: boolean;
playsinline?: boolean;
skinLayout?: any;
rePlay?: boolean;
showBuffer?: boolean;
controlBarVisibility?: string;
playerShortCuts?: boolean;
aliplayerSdkVer?: string;
showBarTime?: string;
enableSystemMenu?: boolean;
autoPlayDelay?: number;
autoPlayDelayDisplayText?: string;
language?: 'zh-cn' | 'en-us';
languageTexts?: string; // JSON
snapshotWatermark?: object;
useHlsPluginForSafari?: boolean;
enableStashBufferForFlv?: boolean;
stashInitialSizeForFlv?: number;
loadDataTimeout?: number;
waitingTimeout?: number;
liveStartTime?: string;
liveOverTime?: string;
liveTimeShiftUrl?: string;
liveShiftSource?: string;
diagnosisButtonVisible?: boolean;
encryptType?: 0 | 1;
progressMarkers?: progressMarker[];
vodRetry?: number;
liveRetry?: number;
keyShortCuts?: boolean;
keyFastForwardStep?: number;
}
RtcService方法
方法 | 参数 | 描述 | 是否为异步方法 |
getDeviceInfo | 获取设备信息 需要忽略列表中deviceId为defualt的设备。 | 同步 | |
initRtc | 关闭自动初始化RTC后,手动初始化RTC 注意:必须初始化RTC后才可以使用连麦相关功能。 | 同步 | |
getAvailableResolutions | id: string | 获取可支持的分辨率的数组信息 ID为getDeviceInfo中的deviceId。 | 异步 |
getCurrentDeviceAvailableResolutions | 获取当前设备可用分辨率 | 异步 | |
setScreenShareVideoProfile | frameRate: number width: number height: number | 设置屏幕分享的帧率和分辨率 需要在推流之前调用。 frameRate: 帧率,屏幕分享默认为10。 | 同步 |
setVideoProfile | frameRate: number width: number height: number | 设置摄像头推流的帧率和分辨率 frameRate: 帧率,摄像头默认为15。 | 同步 |
startRtcPreview | video: HTMLVideoElement | 开始摄像头预览 | 同步 |
stopRtcPreview | 结束摄像头预览 | 同步 | |
setPublishStreamInfo (1.7.0新增) | options: { audio: boolean, camera: boolean, screen: boolean } | 手动设置要推的流 设置后需要调用rtcPublish才可以生效。 | 同步 |
rtcPublish (1.7.0新增) | 手动开始RTC推流 同AliRtc中的publish,用于跟setPublishStreamInfo配合。如果流设置全部为false,就是结束推流。 | 异步 | |
startPublish | 手动开始RTC推流 会按照当前推流设置推流。如果没有设置要推的流,默认推视频流和音频流。 | 异步 | |
stopPublish | 结束RTC推流 | 异步 | |
startPublishScreen | 发布屏幕流 如在推流则会自动停止推流并重新转推屏幕流。 | 异步 | |
stopPublishScreen | 结束发布屏幕流 结束后会开始推之前设置的流。 | 异步 | |
startPublishAudio (1.7.0新增) | 只推音频流 | 异步 | |
startPublishCamera (1.7.0新增) | 开始推摄像头流 | 异步 | |
setSubscribeStreamInfo (1.7.0新增) | options: { audio: boolean, camera: boolean, screen: boolean } | 手动设置要订阅的流 设置后需要调用rtcSubscribe才可以生效。 | 同步 |
rtcSubscribe (1.7.0新增) | userId: string | 手动订阅某人的流 同AliRtc中的subscribe,用于跟setSubscribeStreamInfo配合。如果流设置全部为false,就是取消订阅某人。 | 异步 |
subscribe | userId: string | 手动订阅某人的流 内部判断是否有屏幕流,有屏幕流的话订阅屏幕流。 | 异步 |
subscribeScreen (1.7.0新增) | userId: string | 订阅某人的屏幕流 默认订阅音频流,如有特殊需求请使用setSubscribeStreamInfo配合rtcSubscribe。 | 异步 |
subscribeAudio (1.7.0新增) | userId: string | 只订阅某人的音频流 | 异步 |
subscribeCamera (1.7.0新增) | userId: string | 订阅某人的摄像头流 默认订阅音频流,如有特殊需求请使用setSubscribeStreamInfo配合rtcSubscribe。 | 异步 |
unSubscribe | userId: string | 取消订阅某人 | 异步 |
setAutoSubscribe | autoSubscribe: boolean | 设置自动订阅,默认为自动订阅 只能在未进入频道时设置。 | 同步 |
setAutoPublish | autoPublish: boolean | 设置自动推流,默认为自动推流 只能在未进入频道时设置。 | 同步 |
setDisplayRemoteVideo | video: HTMLVideoElement userId: string streamType: 1 | 2 | 将订阅的流输出到video上 streamType: 1: 摄像头流。 2: 屏幕分享流。 | 同步 |
getUserList | 获取当前RTC会议中(连麦中)的成员列表 同步方法。 | 同步 | |
getUserInfo | userId: string | 获取RTC某成员的用户信息 同步方法。 | 同步 |
listConfUser | pageIndex: number pageSize: number | 获取会议在线(连麦中)和已离线(已下麦)的成员列表 pageIndex从1开始。 | 异步 |
listApplyLinkMicUser | pageIndex: number pageSize: number | 获取当前正在申请连麦的成员列表 pageIndex从1开始。 | 异步 |
getConfDetail | 获取RTC会议详情 | 异步 | |
joinChannel | nick:string | RTC进入频道 入会默认自动推流。 | 异步 |
startRoadPublish | 开始旁路推流 一场会议只能有一个主播,主播开启旁路推流后房间内其他人可以通过liveService观看直播。 注意:通过RTC+旁路推流进行直播,计费要比普通直播多出RTC部分,请谨慎使用! | 异步 | |
stopRoadPublish | 结束旁路推流 会结束该场直播。 | 异步 | |
setLayout | userIds: string[] model: 1 | 2 | 3 | 4 | 设置旁路推流直播的布局 model取值:
例: 1. 设置主播全屏:
2. 设置一大四小:
| 异步 |
setCustomLayout | paneModel[] | 自定义旁路推流直播的布局
| 异步 |
leaveSeat | 断开连麦 | 异步 | |
applyJoinChannel | apply: boolean | 向主播申请连麦 会给主播发送EventNameEnum.PaaSRtcApply事件,apply为false时取消连麦申请。 | 异步 |
handleApplyJoinChannel | userId: string approve: boolean | 向服务器上报处理连麦申请结果 approve之后被申请方需要主动邀请申请方进入连麦。 | 异步 |
inviteJoinChannel | userModels: ConfUserModel[] | 邀请连麦 被邀请方会收到EventNameEnum.PaaSRtcInvite事件,此时joinChannel即可。
| 异步 |
kickUserFromChannel | kickedUserList: string[] | 踢出指定用户 被踢出方会收到EventNameEnum.PaaSRtcKickUser事件,此时被踢出方调用leaveRtc即可。 | 异步 |
switchCamera | id: string | 切换摄像头 设备ID通过getDeviceInfo接口获取。 | 异步 |
setMutePush | mute: boolean | 设置静音推流 返回值为true代表设置成功。 | 异步 |
reportMicStatus (1.7.0新增) | open: boolean | 手动上报麦克风状态 用于手动设置publish的场合,会议中其他人会收到EventTypeEnum.PaaSRtcMute事件。 | 异步 |
reportCameraStatus (1.7.0新增) | open: boolean | 手动上报摄像头状态 用于手动设置publish的场合,会议中其他人会收到EventTypeEnum.PaaSRtcCamera事件。 | 异步 |
reportScreenStatus (1.7.0新增) | open: boolean | 手动上报屏幕共享状态 用于手动设置publish的场合,会议中其他人会收到EventTypeEnum.PaaSRtcScreen事件。 | 异步 |
setMuteCamera | mute: boolean | 设置关闭摄像头(推黑帧) 返回值为true代表设置成功。 | 异步 |
muteRemoteMic | userId: string mute: boolean | RTC静音某人 调用成功后会给对方发送EventTypeEnum.PaaSRtcMute事件,接收方如果在列表中,需自行调用setMutePush。 | 异步 |
muteAllRemoteMic | mute: boolean | RTC静音所有人 调用成功后会给所有人发送EventNameEnum.PaaSRtcMute事件,接收方自行调用setMutePush。 | 异步 |
startRecord | 开始RTC录制 | 异步 | |
stopRecord | 结束RTC录制 | 异步 | |
leaveRtc | needDestroy: boolean | 离开RTC频道 needDestroy为true时会销毁会议,仅主播可设置。 | 异步 |
wbService方法
Web端SDK只提供白板与服务端交互的相关功能,如获取白板ID、白板录制等,用于场景一体化。如要使用白板本身的能力,请直接接入白板SDK,详情请参阅:互动白板Web端集成与使用。
方法 | 参数 | 描述 | 是否为异步方法 |
getWhiteboardId | 获取白板ID | 异步 | |
getDockey | 获取白板ID 同getWhiteboardId,即将废弃,不推荐。 | 异步 | |
getWbToken | whiteboardId: string | 获取白板登录用的Token 即白板登录时需要getDocumentData返回的值。 | 异步 |
startWhiteboardRecording | 开始白板录制 | 异步 | |
stopWhiteboardRecording | 停止白板录制 | 异步 | |
pauseWhiteboardRecording | 暂停白板录制 | 异步 | |
resumeWhiteboardRecording | 继续白板录制 | 异步 | |
reportWhiteboardPageOperate | operate: 'add' pageGroup: string pageNumber: number pageSize: number type: 'page' | 'img' | 上报白板页码映射关系 | 异步 |
getWhiteboardPageInfo | isGenerateUrl: boolean | 获取白板页码映射关系 | 异步 |
docService方法
方法 | 参数 | 描述 | 是否为异步方法 |
upload | file: File | 上传文档
| 异步 |
download | docId: string | 获取文档下载链接 获取的链接有效期为30分钟。 | 异步 |
convert | sourceDocId: string targetType: 'pdf' | 'png' | 'jpg' | 文件转码 转码的结果会通过事件通知出来。 | 异步 |
getUrlList | docId: string | 获取文档的文件列表 | 异步 |
事件列表
事件名称通过EventNameEnum
可以获取,例如EventNameEnum.PaaSRoomEnter
。接入方式参考Web端集成。
RoomChannel事件
事件名称 | 描述 |
PaaSRoomEnter | 有用户进入或离开直播间 |
PaaSRoomChangeTitle | 修改直播间标题 |
PaaSRoomChangeNotice | 修改直播间公告 |
PaaSRoomKickUser | 踢出用户 |
PaaSRoomExtension | 修改直播间额外信息 |
ChatService事件
事件名称 | 描述 |
PaaSChatReceiveComment | 收到弹幕 |
PaaSChatReceiveLike | 收到点赞 |
PaaSChatMuteUser | 禁言用户 |
PaaSChatMuteAll | 禁言所有用户 |
PaaSChatCustomMessage | 收到自定义消息 |
LiveService事件
事件名称 | 描述 |
PaaSLiveCreate | 创建直播 |
PaaSLivePublish | 直播开始 |
PaaSLiveStop | 直播结束 |
PaaSLiveStreamStart(1.8.0新增) | 直播推流事件 |
PaaSLiveStreamStop(1.8.0新增) | 直播断流事件 |
PaaSPlayerEvent | 播放器事件 返回值数据结构为:
其中eventName就是AliPlayer的事件名,完整事件列表可以查看订阅事件。 |
RtcService事件
RTC事件中以“PaaS”开头的事件是业务场景事件,用来处理业务场景上的需求,如申请连麦等;on开头的是RTC事件,代表了RTC实例本身的状态。
事件名称 | 描述 |
PaaSRtcJoinSuccess | 进入频道成功 |
PaaSRtcJoinFailed | 进入频道失败 |
PaaSRtcLeaveChannel | 离开频道 |
PaaSRtcKickUser | 有用户被踢出 |
PaaSRtcConfStart | 开始RTC会议 |
PaaSRtcConfStop | 结束RTC会议 |
PaaSRtcInvite | 用户被邀请 |
PaaSRtcRefuse | 申请连麦被拒绝 |
PaaSRtcApply | 用户申请连麦 |
PaaSRtcMute | 用户被开关麦克风 |
PaaSRtcCamera | 用户被开关摄像头 |
PaaSRtcScreen | 主播开关屏幕分享 |
PaaSRtcSetLayout | 主播旁路推流的布局发生改变 |
onSubscribeResult | RTC订阅用户成功 订阅后,需要在这个事件的回调中调用 |
onPublisher | 发布流 |
onUnPublisher | 取消发布流 |
onJoin | 加入频道 |
onLeave | 离开频道 |
onError | 错误异常 |
onBye | 被服务器踢出或者频道关闭 |
onUpdateRole | 角色切换 |
onNotify | 用户状态变化 |
onAudioLevel | 音频能量值变化 |
onMedia | 推流和订阅的音视频数据 |
docService事件
事件名称 | 描述 |
PaaSDocConversionStatus | 上传结果 返回的数据结构:
|
DocUploadProcess | 上传进度 回调函数参数为0-1之间的浮点数。 |