本文介绍uni-app nvue JS封装层SDK提供的类和方法。
重点接口类简介
RoomEngine:Room的全局管理类单例,需要全局初始化一次,负责鉴权、登入、登出等。
RoomChannel:提供关于直播间以及插件能力调用。
方法列表
RoomEngine方法
方法 | 参数 | 描述 | 方法描述 |
---|---|---|---|
getInstance | 用于获取roomEngine实例。 此方法为静态方法,需要以RoomEngine.getInstance()的方式调用。 | 静态方法 | |
getRoomChannel | roomId: string | 按房间获取RoomChannel实例。 roomId可以通过服务端创建房间获取,也可以通过服务端场景化接口创建直播,再通过直播详情获取。 | 同步方法 |
init | config: IEngineConfig | 初始化SDK。
| 同步方法 |
login | 长连接登录建连 | 异步方法 | |
logout | 长连接登出 | 异步方法 | |
isLogined | 获取登录状态 | 此为Getter,使用方式为roomEngine.isLogined。 | Getter |
RoomChannel方法
方法 | 参数 | 描述 | 方法描述 |
---|---|---|---|
enterRoom | nick | 进入房间。 | 异步方法 |
leaveRoom | 离开房间。 | 异步方法 | |
getRoomDetail | 获取房间详情。 | 异步方法 | |
listUser | pageNum: number, pageSize: number | 获取房间用户列表。 pageNum从1开始。 | 异步方法 |
kickUser | userId: string | 踢出用户。 调用者必须为房间管理员或房间所有者。 | 异步方法 |
getChatService | 获取Chat实例。 | 同步方法 | |
getPlayerService | ref: PlayerRef | 获取Player实例。 PlayerRef需要通过nvue的refs语法获取。 | 同步方法 |
getPusherService | ref: PusherRef | 获取Pusher实例。 PusherRef需要通过nvue的refs语法获取。 | 同步方法 |
isAdmin | 获取是否为管理员 | 此为Getter,使用方式为roomChannel.isAdmin。 | Getter |
isOwner | 获取是否为房间所有者 | 此为Getter,使用方式为roomChannel.isOwner。 | Getter |
ChatService方法
方法 | 参数 | 描述 | 方法描述 |
---|---|---|---|
getChatDetail | 获取Chat详细信息。 包括消息配置、是否静音等。 | 异步方法 | |
sendComment | content: string, extension?: BasicMap<string | number> | 发送弹幕消息。 extension字段可选,为包含任意数据的对象,会透传到消息事件和消息列表中。
| 异步方法 |
sendLike | 点赞。 内部做了合流操作,支持连续点赞。 | 同步方法 | |
listComment | sortType: 0 | 1, pageNumber: number, pageSize: number | 拉取弹幕列表。 sortType是数据排序方式,0为时间递增顺序,1为时间递减顺序。 pageNumber从1开始。 | 异步方法 |
banAllComment | 全员禁止发送弹幕。 只有管理员和房间所有者有权限调用。 | 异步方法 | |
cancelBanAllComment | 全员取消禁止发送弹幕。 只有管理员和房间所有者有权限调用。 | 异步方法 | |
banComment | userId: string, muteSeconds: number | 禁止某人发送弹幕。 muteSeconds单位为秒,传0为永久禁言。 只有管理员和房间所有者有权限调用。 | 异步方法 |
cancelBanComment | userId: string | 取消禁止某人发送弹幕 只有管理员和房间所有者有权限调用。 | 异步方法 |
sendCustomMessageToAll | body: string | BasicMap<string | number> | 给房间内全员发送自定义消息。
| 异步方法 |
sendCustomMessageToUsers | body: string | BasicMap<string | number>, userIds: string[] | 给某人发送自定义消息 userIds为userId组成的数组。 | 异步方法 |
LiveBase基类方法
LiveBase为PlayerService和PusherService的基类,两者的实例都可以调用LiveBase上的方法。
方法 | 参数 | 描述 | 方法描述 |
---|---|---|---|
getLiveDetail | 获取直播数据详情。 包括推流地址、拉流地址等信息。 | 异步方法 |
PlayerService方法
方法 | 参数 | 描述 | 方法描述 |
---|---|---|---|
start | showMode: ShowMode | 开始播放。 ShowMode用于指定显示模式。数据结构可以通过结构赋值从SDK中获取。
| 同步方法 |
stop | 结束播放。 | 同步方法 | |
pause | 暂停播放。 | 同步方法 | |
resume | 恢复播放。 | 同步方法 | |
refresh | 刷新播放器。 | 同步方法 |
PusherService方法
方法 | 参数 | 描述 | 方法描述 |
---|---|---|---|
startPreview | pusherOptions: PusherOptions | 开始预览。
| 异步方法 |
setPreviewMode | showMode: ShowMode | 设置预览画面展示方式。 | 同步方法 |
startLive | 开始直播推流。 | 异步方法 | |
stopLive | 结束直播推流。 | 异步方法 | |
setPreviewMirror | mirror: boolean | 设置预览镜像。 | 同步方法 |
setPushMirror | mirror: boolean | 设置推流镜像。 | 同步方法 |
switchCamera | 切换前后摄像头。 | 同步方法 |
消息列表
消息列表可以通过结构赋值从SDK中获取:
import { EventNameEnum } from 'path/to/RoomPaasSdk.uni.min.js';
所有消息都从uni-app的官方插件globalEvent上透出,在相应页面引入即可,示例代码:
const globalEvent = uni.requireNativePlugin('globalEvent');
// 绑定事件
globalEvent.addEventListener(EventNameEnum.CommentReceived, receiveCommentHandler)
// 移除事件
globalEvent.removeEventListener(EventNameEnum.CommentReceived)
RoomEngine消息
消息名 | 描述 |
---|---|
OnKicked | 被长连接下线。 |
RoomChannel消息
消息名 | 描述 |
---|---|
EnterRoom | 成员进入房间。 |
LeaveRoom | 成员离开房间。 |
KickedFromRoom | 本人被踢出房间。 |
ChatService消息
方法 | 描述 |
---|---|
CommentReceived | 收到弹幕消息。 |
CommentMuted | 禁言。 |
CommentMuteCanceled | 取消禁言。 |
CommentAllMuted | 全体禁言。 |
CommentAllMuteCanceled | 取消全体禁言。 |
Liked | 收到点赞信息。 |
CustomMessage | 收到自定义消息。 |
PlayerService和PusherService消息
方法 | 描述 |
---|---|
LiveStarted | 直播开始。 |
LiveStopped | 直播结束。 |
LiveFirstFrameRendered | 首帧渲染事件。 |
LiveLoadingStarted | 播放加载开始。 |
LiveLoadingStopped | 播放加载结束。 |
LivePreviewStarted | 预览开始。 |
LivePushStarted | 推流开始。 |
LivePushStopped | 推流结束。 |
LiveNotExist | 直播不存在。 |