Web接口列表

本文介绍Web端SDK提供的类和方法。

重要
  • 旧版低代码方案(原低代码音视频工厂,以下简称低代码1.0)计划于2023年9月30日下线,在此之前低代码1.0的客户可继续使用旧版互动直播或互动课堂的功能直至2023/9/30停服,请您尽快切换至低代码2.0或视频直播。

  • 升级说明请参见低代码方案升级说明。升级咨询可加钉钉群10570030108(仅限升级咨询,如您有售后问题请提交工单)。

  • 新旧方案计费规则不同,资源包不可互通使用。低代码音视频工厂未消费的资源包可以申请按比例退款。

重点接口类简介

  • RoomEngine:Room的全局管理类单例,需要全局初始化一次,负责鉴权、登入、登出等。

  • RoomChannel:提供关于直播间以及插件能力调用。

方法列表

RoomEngine方法

方法

参数

描述

是否为异步方法

getInstance

获取RoomEngine实例

静态方法,使用方法为RoomEngine.getInstance()

同步

init

config: Config

初始化config数据

interface Config {
  appId: string;
  appKey: string;
  deviceId: string;
  authTokenCallback: () => Promise<AuthToken>;
}
interface AuthToken {
  accessToken: string;
  refreshToken: string;
  accessTokenExpiredTime: string;
}

同步

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底层服务

  • 当某些场景只需要观看直播,不需要进行RTC连麦(不希望弹出权限申请弹窗),可以传入false。

  • 必须在getRoomChannel调用之前设置。

  • 如果在之后的业务需求中需要再次初始化RTC,需要手动调用initRtc

同步

RoomChannel方法

方法

参数

描述

是否为异步方法

getPluginService

pluginId: PluginId

获取各个插件实例

其中rtc、wb、doc实例只可以在完全版SDK中获取。

PluginId:'live' | 'chat' | 'rtc' | 'wb' | 'doc'

同步

enterRoom

nick: string

extension?: BasicMap<string | number>

进入直播间并获取直播间信息

返回值为roomDetail。

interface BasicMap<U> {
  [index: string]: U
}

异步

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即排序方式:

  • 0:时间递增顺序。

  • 1:时间递减顺序。

pageIndex从1开始。

异步

banAllComment

全体弹幕禁言

仅主播可用。

异步

cancelBanAllComment

取消全体弹幕禁言

仅主播可用。

异步

banComment

userId: string

muteSeconds: number

禁言某个用户

仅主播可用,muteSeconds单位为秒。

异步

cancelBanComment

userId

取消某个用户的禁言

仅主播可用。

异步

sendCustomMessageToUsers

body: string

receiverList: string[]

发送自定义消息给指定用户

异步

sendCustomMessageToAll

body: string

发送自定义消息给房间所有用户

异步

LiveService方法

方法

参数

描述

是否为异步方法

getLiveDetail

获取直播详情

获取当前房间的直播详情,若直播结束则获取不到。已经结束的直播详情可通过roomEngine.getLiveDetail(liveId)获取。

异步

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:一大四小。

  • 3:九宫格。

  • 4: 屏幕流。

例:

1. 设置主播全屏:

rtcService.setLayout(['主播userId'], 1)

2. 设置一大四小:

// 如在中间传undefined,则该位置的直播流会置空
rtcService.setLayout(['大userId', '小userId1', undefined, '小userId2'], 2)

异步

setCustomLayout

paneModel[]

自定义旁路推流直播的布局

interface PaneModel {
     x: number; // 必填,格子左上角x坐标,归一化后的百分比值, 举例:对于宽为720像素,x=0.1,代表左上角x坐标为720*0.1=72像素
     y: number; // 必填,格子左上角y坐标,归一化后的百分比值
     width: number; // 必填,格子宽,归一化后的百分比值
     height: number; // 必填,格子高,归一化后的百分比值
     zOrder: number; // 必填,格子zOrder,值越大,越在前
     userId?: string; // 可选,此格子展示用户,不填则会显示黑色
 }

异步

leaveSeat

断开连麦

异步

applyJoinChannel

apply: boolean

向主播申请连麦

会给主播发送EventNameEnum.PaaSRtcApply事件,apply为false时取消连麦申请。

异步

handleApplyJoinChannel

userId: string

approve: boolean

向服务器上报处理连麦申请结果

approve之后被申请方需要主动邀请申请方进入连麦。

异步

inviteJoinChannel

userModels: ConfUserModel[]

邀请连麦

被邀请方会收到EventNameEnum.PaaSRtcInvite事件,此时joinChannel即可。

interface ConfUserModel {
    userId: string; // 用户ID
    nickname: string; // 用户昵称
    tenantId: string; // 必填,但可以为空字符串
    // 以下为非必填
    extension?: string; // 扩展信息
    cameraStatus?: number; // 摄像头状态,服务端透传,0:关闭,1:打开
    micphoneStatus?: number; // 麦克风状态,服务端透传,0:关闭,1:打开
}

异步

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

上传文档

  • 上传进度会通过事件通知出来。

  • 返回Promise<string>,值为docId,代表所上传的文档。

异步

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

播放器事件

返回值数据结构为:

interface PlayerEvent {
    eventName: string;
    eventData: EventData;
}

其中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订阅用户成功

订阅后,需要在这个事件的回调中调用setDisplayRemoteVideo,将流输出到HTMLVideoElement。

onPublisher

发布流

onUnPublisher

取消发布流

onJoin

加入频道

onLeave

离开频道

onError

错误异常

onBye

被服务器踢出或者频道关闭

onUpdateRole

角色切换

onNotify

用户状态变化

onAudioLevel

音频能量值变化

onMedia

推流和订阅的音视频数据

docService事件

事件名称

描述

PaaSDocConversionStatus

上传结果

返回的数据结构:

interface ConvertMessage {
  status: 'CONVERSION_TASK_STATUS_SUCCESS' | 'CONVERSION_TASK_STATUS_FAILED';
  sourceTargetId: string;
  targetSourceId: string;
}

DocUploadProcess

上传进度

回调函数参数为0-1之间的浮点数。