Flutter 基础SDK接口文档
本文介绍Flutter基础SDK提供的API方法及参数。
重点接口类简介
IMPSdkRoomEngine:Room的全局管理类单例,需要全局初始化一次,负责鉴权、登入、登出等。
IMPSdkRoomChannel:提供关于直播间以及插件能力调用。
如非特殊说明,API均为异步方法。
如非特殊说明,API入参均为Map<String, String>类型。
方法列表
IMPSdkRoomEngine方法
方法 | 参数 | 描述 | 备注 |
---|---|---|---|
init |
| 初始化SDK。 | 调用示例
|
login | 无 | 长连接登录建连 | 无 |
logout | 无 | 长连接登出 | 无 |
isLogined | 无 | 获取登录状态 | 无 |
setLoginToken |
| 设置loginToken,用于登录认证 | 需在接受到事件onRequestToken之后触发调用,详细流程参见开源工程。 |
IMPSdkRoomChannel方法
方法 | 参数 | 描述 | 备注 |
---|---|---|---|
enterRoom | {'nick':String} | 进入房间。 | 无 |
leaveRoom | 无 | 离开房间。 | 无 |
getRoomDetail | {'roomId':String} | 获取房间详情。 | 无 |
listUser | { 'pageNum': String, 'pageSize': String, } | 获取房间用户列表。 pageNum从1开始。 | 无 |
kickUser | {'userId': String} | 踢出用户。 调用者必须为房间管理员或房间所有者。 | 无 |
isAdmin | 无 | 获取是否为管理员,使用方式为roomChannel.isAdmin。 | 无 |
isOwner | 无 | 获取是否为房间所有者,使用方式为roomChannel.isOwner。 | 无 |
IMPSdkChat方法
方法 | 参数 | 描述 | 备注 |
---|---|---|---|
getChatDetail | 无 | 获取Chat详细信息。 包括消息配置、是否静音等。 | 无 |
sendComment | {'content': String, 'extension': String,} | extension字段可选,为包含任意数据的对象,会透传到消息事件和消息列表中。 | 无 |
sendLike | 无 | 点赞。 内部做了合流操作,支持连续点赞。 | 无 |
listComment | {'sortType': '0', // '1' 'pageNumber': String, 'pageSize':String,} | 拉取弹幕列表。 sortType是数据排序方式,0为时间递增顺序,1为时间递减顺序。 pageNumber从1开始。 | 无 |
banAllComment | 无 | 全员禁止发送弹幕。 只有管理员和房间所有者有权限调用。 | 无 |
cancelBanAllComment | 无 | 全员取消禁止发送弹幕。 只有管理员和房间所有者有权限调用。 | 无 |
banComment | {'userId': String, 'muteSeconds': String,} | 禁止某人发送弹幕。 muteSeconds单位为秒,传0为一直禁言。 只有管理员和房间所有者有权限调用。 | 无 |
cancelBanComment | {'userId': String} | 取消禁止某人发送弹幕 只有管理员和房间所有者有权限调用。 | 无 |
sendCustomMessageToAll | {'body': String} | 给房间内全员发送自定义消息。 | 无 |
sendCustomMessageToUsers | {'body': String, 'userIds':String} | 给某人发送自定义消息 userIds为userId组成的数组。 | 无 |
IMPSdkLivePlayer方法
方法 | 参数 | 描述 | 备注 |
---|---|---|---|
start | {'showMode': String} // 可取值:'fill' |'aspect_fill' |'aspect_fit' | 开始播放。 ShowMode用于指定显示模式。数据结构可以通过结构赋值从SDK中获取。 | 无 |
stop | 无 | 结束播放。 | 无 |
pause | 无 | 暂停播放。 | 无 |
resume | 无 | 恢复播放。 | 无 |
refresh | 无 | 刷新播放器。 | 无 |
IMPSdkLivePusher方法
方法 | 参数 | 描述 | 备注 |
---|---|---|---|
startPreview |
| 开始预览。 | 无 |
setPreviewMode | {'showMode': String} // 可取值:'fill' |'aspect_fill' |'aspect_fit' | 设置预览画面展示方式。 | 无 |
startLive | 无 | 开始直播推流。 | 无 |
stopLive | 无 | 结束直播推流。 | 无 |
setPreviewMirror | {'mirror':String} | 设置预览镜像。 | 无 |
setPushMirror | {'mirror':String} | 设置推流镜像。 | 无 |
switchCamera | 无 | 切换前后摄像头。 | 无 |
消息列表
消息列表使用SDK中的Event模块实现:
import 'package:alicloud_impinteraction_sdk/event.dart';
所有消息都从此模块中发出,需要注册监听才能成功接受到消息事件:
eventChannelCancel = IMPSdkEvent.startListening((jsonMsg) async {
var msg = await json.decode(jsonMsg);
String event = msg['event'] ?? '';
String params = msg['params'] ?? '';
});
IMPSdkRoomEngine消息
消息名 | 描述 |
---|---|
onKicked | 被长连接踢离线。 |
IMPSdkRoomChannel消息
消息名 | 描述 |
---|---|
enterRoom | 成员进入房间。 |
leaveRoom | 成员离开房间。 |
kickedFromRoom | 本人被踢出房间。 |
IMPSdkChat消息
方法 | 描述 |
---|---|
commentReceived | 收到弹幕消息。 |
commentMuted | 禁言。 |
commentMuteCanceled | 取消禁言。 |
commentAllMuted | 全体禁言。 |
commentAllMuteCanceled | 取消全体禁言。 |
liked | 收到点赞信息。 |
customMessage | 收到自定义消息。 |
Player和Pusher消息
方法 | 描述 |
---|---|
liveStarted | 直播开始。 |
liveStopped | 直播结束。 |
liveFirstFrameRendered | 首帧渲染事件。 |
liveLoadingStarted | 播放加载开始。 |
liveLoadingStopped | 播放加载结束。 |
livePreviewStarted | 预览开始。 |
livePushStarted | 推流开始。 |
livePushStopped | 推流结束。 |
liveNotExist | 直播不存在。 |