TUICallKit

TUICallKit APIs

TUICallKit is an audio/video call component that includes UI elements. You can use its APIs to quickly implement an audio/video call application similar to WeChat. For directions on integration, see Integrating TUICallKit.

API Overview

API
Description
login
login
logout
logout
Sets the user nickname and profile photo.
call
Makes a one-to-one call.
groupCall
Makes a group call.
Joins a group call.
Sets the ringtone.
Sets whether to turn on the mute mode.
Sets whether to enable floating windows.
Sets whether to display incoming banner. v2.3.1 supported.

API Detail

login

const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
const options = {
SDKAppID: 0,
userID: 'mike',
userSig: '',
};
TUICallKit.login(options, (res) => {
if (res.code === 0) {
console.log('login success');
} else {
console.log(`login failed, error message = ${res.msg}`);
}
});
Parameter
Type
Description
options
Object
Initialization parameters
options.SDKAppID
Number
User SDKAppID
options.userID
String
userID
options.userSig
String
User Signature
callback
Function
callback function, code = 0 means the call was successful; code ! = 0 means the call failed, see msg for the reason.

logout

const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
TUICallKit.logout((res) => {
if (res.code === 0) {
console.log('logout success');
} else {
console.log(`logout failed, error message = ${res.msg}`);
}
});
Parameter
Type
Description
callback
Function
callback function, code = 0 means the call was successful; code ! = 0 means the call failed, see msg for the reason.

setSelfInfo

This API is used to set the alias and profile photo. The alias cannot exceed 500 bytes, and the profile photo is specified by a URL.
const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
const options = {
nickName: 'jack',
avatar: 'https:/****/user_avatar.png'
}
TUICallKit.setSelfInfo(options, (res) => {
if (res.code === 0) {
console.log('setSelfInfo success');
} else {
console.log(`setSelfInfo failed, error message = ${res.msg}`);
}
});
Parameter
Type
Description
options
Object
Initialization parameters
options.nickName
String
Nickname of the target user, not required
options.avatar
String
Target user's avatar, not required
callback
Function
callback function, code = 0 means the call was successful; code ! = 0 means the call failed, see msg for the reason.

call

This API is used to make a (one-to-one) call.
const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
const options = {
userID: 'mike',
callMediaType: 1, // audio call(callMediaType = 1)、video call(callMediaType = 2)
roomID: 0,
strRoomID: '1223',
};
TUICallKit.call(options, (res) => {
if (res.code === 0) {
console.log('call success');
} else {
console.log(`call failed, error message = ${res.msg}`);
}
});
The parameters are described below:
Parameter
Type
Description
options
Object
Initialization parameters
options.userID
String
The userID of the target user
options.callMediaType
Number
Media type of the call, e.g., voice call (callMediaType = 1), video call (callMediaType = 2)
options.roomID
Number
Customize the numeric room number. As long as the roomID is present, the numeric room number is used, even if strRoomID is present.
options.strRoomID
String
Customize the string room number. If you want to use a string room number, you need to set roomID = 0 after setting strRoomID.
callback
Function
callback function, code = 0 means the call was successful; code ! = 0 means the call failed, see msg for the reason.

groupCall

This API is used to make a group call.
Note:
Before making a group call, you need to create an IM group first.
const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
const options = {
groupID: 'myGroup',
userIDList: ['mike', 'tom'],
callMediaType: 1, // audio call(callMediaType = 1)、video call(callMediaType = 2)
};
TUICallKit.groupCall(options, (res) => {
if (res.code === 0) {
console.log('call success');
} else {
console.log(`call failed, error message = ${res.msg}`);
}
});
Parameter
Type
Description
options
Object
Initialization parameters
options.groupID
String
Group ID for this group cal
options.userIDList
List
The target user IDs.
options.callMediaType
Number
Media type of the call, e.g., voice call (callMediaType = 1), video call (callMediaType = 2)
options.roomID
Number
Customize the numeric room number. As long as the roomID is present, the numeric room number is used, even if strRoomID is present.
options.strRoomID
String
Customize the string room number. If you want to use a string room number, you need to set roomID = 0 after setting strRoomID.

joinInGroupCall

This API is used to join a group call.
const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
const options = {
roomID: 9898,
groupID: 'myGroup',
callMediaType: 1, // audio call(callMediaType = 1)、video call(callMediaType = 2)
};
TUICallKit.joinInGroupCall(options, (res) => {
if (res.code === 0) {
console.log('joinInGroupCall success');
} else {
console.log(`joinInGroupCall failed, error message = ${res.msg}`);
}
});
Parameter
Type
Description
options
Object
Initialization parameters
options.roomID
Number
Customize the numeric room number. As long as the roomID is present, the numeric room number is used, even if strRoomID is present.
options.strRoomID
String
Customize the string room number. If you want to use a string room number, you need to set roomID = 0 after setting strRoomID.
options.groupID
String
Group ID for this group cal
options.callMediaType
Number
Media type of the call, e.g., voice call (callMediaType = 1), video call (callMediaType = 2)
callback
Function
callback function, code = 0 means the call was successful; code ! = 0 means the call failed, see msg for the reason.

setCallingBell

To set a customized incoming call tone, here you are limited to passing in the local file address, and you need to make sure that the file directory is accessible to the application.
const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');

// 【1】Save audio files locally through uni.saveFile. Reference.: https://zh.uniapp.dcloud.io/api/file/file.html#savefile
const tempFilePath = './static/rain.mp3';
let musicFilePath = '';
uni.saveFile({
tempFilePath: tempFilePath,
success: (res) => {
musicFilePath = res.savedFilePath;
// 【2】Convert relative path to absolute path, otherwise access will not be possible
musicFilePath = plus.io.convertLocalFileSystemURL(musicFilePath);
// 【3】set ringtone
TUICallKit.setCallingBell(musicFilePath, (res) => {
if (res.code === 0) {
console.log('setCallingBell success');
} else {
console.log(`setCallingBell failed, error message = ${res.msg}`);
}
});
},
fail: (err) => {
console.error('save failed');
},
});
Parameter
Type
Description
filePath
String
Ringtone local file address
callback
Function
callback function, code = 0 means the call was successful; code ! = 0 means the call failed, see msg for the reason.

enableMuteMode

This API is used to set whether to turn on the mute mode.
const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
const enable = true;
TUICallKit.enableMuteMode(enable);
Parameter
Type
Description
enable
Boolean
Mute on, mute off; true means mute on

enableFloatWindow

This API is used to set whether to enable floating windows.
The default value is false, and the floating window button in the top left corner of the call view is hidden. If it is set to true, the button will become visible.
const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
const enable = true;
TUICallKit.enableFloatWindow(enable);
Parameter
Type
Description
enable
Boolean
Enable/disable the floating window function; true means floating window is enabled.

enableIncomingBanner

The API is used to set whether show incoming banner when user received a new call invitation.
The default value is false, The callee will pop up a full-screen call view by default when receiving the invitation. If it is set to true, the callee will display a banner first.
Note:
v2.3.1 supported
const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
const enable = true;
TUICallKit.enableIncomingBanner(enable);