有奖征文:轻量对象存储LighthouseCOS用户实践> HOT

TUICallKit API 简介

TUICallKit API 是音视频通话组件的含 UI 接口,使用TUICallKit API,您可以通过简单接口快速实现一个类微信的音视频通话场景,更详细的接入步骤,详情请参见 快速接入(TUICallKit)

API 概览

API
描述
login
登录
logout
登出
设置用户的昵称、头像
call
发起 1v1 通话
groupCall
发起群组通话
主动加入当前的群组通话中
开启/关闭静音模式
开启/关闭悬浮窗功能
设置自定义来电铃音

API 详情

login

登录。
TUIResult result = TUICallKit.instance.login(sdkAppId: 1400000001, // 请替换为第一步得到的SDKAppID
userId: 'xxxxxx', // 请替换为您的User ID
userSig: 'xxxxxx'); // 您可以在控制台计算一个UserSig并填到该位置
// 返回值TUIResult的定义:
class TUIResult {
String code;
String? message;
TUIResult({required this.code, required this.message});
}
参数
类型
含义
sdkAppId
int
用户 SDKAppID
userId
String
用户 ID
userSig
String
用户签名 userSig
返回值
TUIResult
包含code和message信息:code = 0 表示调用成功;code != 0 表示调用失败,失败原因见message

logout

登出。
TUIResult result = TUICallKit.instance.logout()

// 返回值TUIResult的定义:
class TUIResult {
String code;
String? message;
TUIResult({required this.code, required this.message});
}
参数
类型
含义
返回值
TUIResult
包含code和message信息:code = 0 表示调用成功;code != 0 表示调用失败,失败原因见message

setSelfInfo

设置用户昵称、头像。用户昵称不能超过500字节,用户头像必须是URL格式。
// 函数定义为: Future<TUIResult> setSelfInfo(String nickname, String avatar)
TUIResult result = TUICallKit.instance.setSelfInfo('userName', 'url:********');

// 返回值TUIResult的定义:
class TUIResult {
String code;
String? message;
TUIResult({required this.code, required this.message});
}
参数
类型
含义
nickName
String
目标用户的昵称,非必填
avatar
String
目标用户的头像,非必填
返回值
TUIResult
包含code和message信息:code = 0 表示调用成功;code != 0 表示调用失败,失败原因见message

call

拨打电话(1v1通话)。
// call的定义为:Future<void> call(String userId, TUICallMediaType callMediaType)
TUICallKit.instance.call('mike', TUICallMediaType.video);
// TUICallMediaType 定义为:
enum TUICallMediaType {
none,
audio,
video
}
参数如下表所示:
参数
类型
含义
userId
String
目标用户的 userID
callMediaType
通话的媒体类型,比如:TUICallMediaType.video TUICallMediaType.audio

groupCall

发起群组通话,注意:使用群组通话前需要创建IM 群组,如果已经创建,请忽略。
// groupCall定义为:Future<void> groupCall(String groupId, List<String> userIdList, TUICallMediaType callMediaType)
TUICallKit.instance.groupCall('0001', ['denny', 'mike', 'tommy'], TUICallMediaType.video);

enableFloatWindow

参数
类型
含义
groupId
String
此次群组通话的群 ID
userIdList
List<String>
目标用户的userId 列表
callMediaType
通话的媒体类型,比如:TUICallMediaType.video TUICallMediaType.audio

joinInGroupCall

加入群组中已有的音视频通话。
// joinInGroupCall定义为:Future<void> joinInGroupCall(TUIRoomId roomId, String groupId, TUICallMediaType callMediaType)
final roomId = TUIRoomID(intRoomId: 123);
TUICallKit.instance.joinInGroupCall(, ['denny', 'mike', 'tommy'], TUICallMediaType.video);
参数
类型
含义
roomId
TUIRoomID
此次通话的音视频房间 ID
groupId
String
此次群组通话的群 ID
callMediaType
通话的媒体类型,比如:TUICallMediaType.video TUICallMediaType.audio

enableMuteMode

开启后,收到通话请求,不会播放来电铃声。
final enable = true;
TUICallKit.instance..enableMuteMode(enable);
参数
类型
含义
enable
Boolean
开启、关闭静音;true 表示开启静音

enableFloatWindow

开启/关闭悬浮窗功能,设置为false后,通话界面左上角的悬浮窗按钮会隐藏。
final enable = true;
TUICallKit.instance..enableFloatWindow(enable);
参数
类型
含义
enable
Boolean
开启、关闭悬浮窗功能;true 表示开启浮窗

setCallingBell

自定义来电铃声:将铃声文件添加至主工程的assets资源中,传入资源文件名称即可。
final fileName = 'ring.mp3';
TUICallKit.instance.setCallingBell(fileName);