文档

Flutter 基础SDK接口文档

更新时间:

本文介绍Flutter基础SDK提供的API方法及参数。

重点接口类简介

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

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

说明

  1. 如非特殊说明,API均为异步方法。

  2. 如非特殊说明,API入参均为Map<String, String>类型。

方法列表

IMPSdkRoomEngine方法

方法

参数

描述

备注

init

 var param = {
   'userId': userId,
   'appId': appId,
   'appKey4Android': appKey4Android,
   'appKey4iOS': appKey4iOS,
   'serverHost': serverHost,
   'serverSecret': serverSecret,
   'deviceId': deviceId,
 };

初始化SDK。

调用示例
 var param = {
   'userId': userId,
   'appId': appId,
   'appKey4Android': appKey4Android,
   'appKey4iOS': appKey4iOS,
   'serverHost': serverHost,
   'serverSecret': serverSecret,
   'deviceId': deviceId,
 };
var res = await IMPSdkRoomEngine.init(param);

login

长连接登录建连

logout

长连接登出

isLogined

获取登录状态

setLoginToken

{
  'accessToken': accessToken,
  'refreshToken': refreshToken,
}

设置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

{
  'resolution': 'VALUE_540P',
//resolution可取值:
// 'resolution': 'VALUE_480P',
// 'resolution': 'VALUE_540P',
// 'resolution': 'VALUE_720P',
}

开始预览。

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

直播不存在。