TUICallEngine

TUICallEngine API

TUICallEngine은 UI 요소를 포함하지 않는 음성/영상 통화 컴포넌트입니다.

API 개요

API
설명
TUICallEngine 인스턴스 생성(싱글톤 모드)
TUICallEngine 인스턴스 종료(싱글톤 모드)
on
이벤트 수신
off
이벤트 수신 중지
login
로그인
logout
로그아웃
대화명 및 프로필 사진 설정
call
C2C 통화 하기
groupCall
그룹 통화하기
accept
통화 수락
reject
통화 거절
hangup
통화 종료
현재 그룹 통화에 사용자를 초대
현재 그룹 통화에 참여
통화 유형 변경
원격 비디오 렌더링 시작
원격 비디오 렌더링 중지
로컬 비디오 렌더링 시작
로컬 비디오 렌더링 중지
카메라 켜기
카메라 끄기
마이크 켜기
마이크 끄기
비디오 품질 설정
장치 목록 가져오기
다른 카메라/마이크로 변경
AI 노이즈 캔슬링 활성화/비활성화

API 세부 사항

createInstance

이 API는 TUICallEngine 싱글톤을 생성하는 데 사용됩니다.
const tuiCallEngine = TUICallEngine.createInstance({
SDKAppID: 0, // 0을 IM 애플리케이션의 SDKAppID로 대체
tim: tim // 이미 TIM 인스턴스가 있는 경우 이 tim 매개변수를 사용하여 TIM 인스턴스의 고유성 보장
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
SDKAppID
Number
IM 애플리케이션의 SDKAppID
tim
Any
TIM 인스턴스(선택 사항)

destroyInstance

이 API는 TUICallEngine 싱글톤을 종료하는 데 사용됩니다.
tuiCallEngine.destroyInstance().then(() => {
//success
}).catch(error => {
console.warn('destroyInstance error:', error);
});

on

이 API는 이벤트를 수신하는 데 사용됩니다.
let onError = function(error) {
console.log(error);
};
tuiCallEngine.on(TUICallEvent.ERROR, onError, this);
매개변수는 다음과 같습니다:
매개변수
유형
설명
eventName
String
이벤트 이름
callback
function
이벤트 콜백
context
Any
컨텍스트

off

이 API는 이벤트 수신을 중지하는 데 사용됩니다.
let onError = function(error) {
console.log(error);
};
tuiCallEngine.off(TUICallEvent.ERROR, onError, this);
매개변수는 다음과 같습니다:
매개변수
유형
설명
eventName
String
이벤트 이름
callback
function
이벤트 콜백
context
Any
컨텍스트

login

이 API는 로그인에 사용됩니다.
const params = {
userID: 'john', // your userID
userSig: 'xxxx', // 'your userSig'
assetsPath: 'https://xx/'
};
let promise = tuiCallEngine.login(params);
promise.then(() => {
//success
}).catch(error => {
console.warn('login error:', error);
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
userID
String
현재 사용자 ID이며, 문자열 유형은 영어 알파벳(a-z, A-Z), 숫자(0-9), 대시부호(-), 언더바(_)만 허용됩니다
userSig
String
Tencent Cloud의 독점 보안 서명. 자세한 내용은 UserSig 계산 방법을 참고하십시오.
assetsPath
String
denoiser-wasm.js 파일이 배포된 CDN 또는 정적 리소스 서버의 경로 이 파일은 AI 노이즈 캔슬링에 필요합니다. 자세한 내용은 튜토리얼: AI 노이즈 캔슬링 활성화를 참고하십시오.

logout

이 API는 로그아웃하는 데 사용됩니다.
let promise = tuiCallEngine.logout();
promise.then(() => {
//success
}).catch(error => {
console.warn('logout error:', error);
});

setSelfInfo

이 API는 대화명 및 프로필 사진을 설정하는 데 사용됩니다.
let promise = tuiCallEngine.setSelfInfo({
nickName: 'video',
avatar:'http(s)://url/to/image.jpg'
});
promise.then(() => {
//success
}).catch(error => {
console.warn('setSelfInfo error:', error);
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
nickName
String
대화명
avatar
String
프로필 사진 URL

call

이 API는 C2C 통화를 수행하는 데 사용됩니다. 초대받은 사람은 TUICallEvent.INVITED 콜백을 수신합니다.
주의사항:
Android 및 iOS에서 오프라인 알림이 지원됩니다. Web 및 WeChat 미니프로그램에서는 지원되지 않습니다.
let promise = tuiCallEngine.call({
userID: 'user1',
type: 1,
});
promise.then(() => {
//success
}).catch(error => {
console.warn('call error:', error);
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
userID
String
초대받은 사람의 userID
type
Number
통화 유형. 0-알 수 없음, 1-음성 통화, 2-영상 통화

groupCall

이 API는 그룹 통화를 하는 데 사용됩니다. 초대받은 사람은 'EVENT.INVITED' 콜백을 받게 됩니다.
주의사항:
Android 및 iOS에서 오프라인 알림이 지원됩니다. Web 및 WeChat 미니프로그램에서는 지원되지 않습니다.
let promise = tuiCallEngine.groupCall({
userIDList: ['user1', 'user2'],
type: 1,
groupID: 'IM 그룹 ID',
});
promise.then(() => {
//success
}).catch(error => {
console.warn('groupCall error:', error);
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
userIDList
Array
호출할 사용자의 ID
type
Number
0-알 수 없음, 1-음성 통화, 2-영상 통화
groupID
String
IM 그룹 ID
timeout
String
제한 시간(선택 사항)
roomID
String
방 ID(선택 사항)
offlinePushInfo
Object
사용자 지정 오프라인 알림(이 매개변수는 선택 사항이며 tsignaling 0.8.0 이상에서만 유효)

offlinePushInfo

매개변수
유형
설명
title
string
오프라인 알림 제목(선택 사항)
description
string
오프라인 알림 내용(선택 사항)
androidOPPOChannelID
string
OPPO 8.0 이상에서 오프라인 알림을 위한 채널 ID(선택 사항)
extension
string
통과 콘텐츠(이 매개변수는 선택 사항이며 tsignaling 0.9.0 이상에서만 유효)

accept

이 API는 TUICallEvent.INVITED 콜백을 수신한 후 통화를 수락하는 데 사용됩니다.
tuiCallEngine.on(TUICallEvent.INVITED, () => {
tuiCallEngine.accept().promise.then(() => {
//success
}).catch(error => {
console.warn('accept error:', error);
});
});

reject

이 API는 TUICallEvent.INVITED 콜백을 수신한 후 통화를 거부하는 데 사용됩니다.
tuiCallEngine.on(TUICallEvent.INVITED, () => {
tuiCallEngine.reject().then(() => {
//success
}).catch(error => {
console.warn('reject error:', error);
});
});

hangup

이 API는 통화를 종료하는 데 사용됩니다.
통화 중인 경우 이 API로 통화를 종료할 수 있습니다.
통화가 아직 응답이 없는 경우, 이 API는 통화를 취소합니다
tuiCallEngine.hangup().then(() => {
//success
}).catch(error => {
console.warn('hangup error:', error);
});

inviteUser

이 API는 현재 그룹 통화에 사용자를 초대하는 데 사용됩니다.
이 API는 그룹 통화의 참가자가 새 사용자를 초대하기 위해 호출합니다.
const userIDList = ['jack', 'john'];
const params = {
userIDList
};
tuiCallEngine.inviteUser(params).then(() => {
// success
}).catch(error => {
console.error('inviteUser error:', error);
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
userIDList
Array
초청자의 userID
Object
사용자 지정 오프라인 알림(선택 사항). 이 매개변수는 tsignaling 버전이 0.8.0 이상인 경우에만 유효합니다.

offlinePushInfo

매개변수
유형
설명
title
string
오프라인 알림 제목(선택 사항)
description
string
오프라인 알림 내용(선택 사항)
androidOPPOChannelID
string
OPPO 8.0 이상에서 오프라인 알림을 위한 채널 ID(선택 사항)
extension
string
통과 콘텐츠(이 매개변수는 선택 사항이며 tsignaling 0.9.0 이상에서만 유효)

joinInGroupCall

이 API는 그룹 통화에 참여하는 데 사용됩니다.
이 API는 그룹 구성원이 그룹 통화에 참여하기 위해 호출합니다.
const params = {
roomID: 123,
type: 1,
groupID: 111
};
tuiCallEngine.joinInGroupCall(params).then(() => {
// success
}).catch(error => {
console.error('joinInGroupCall error:', error);
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
roomID
Number
방 ID. 현재는 숫자로 된 방 ID만 사용할 수 있으며, 문자열 형식의 방 ID는 향후 지원될 예정입니다
groupID
String
그룹 ID
type
Number
통화 유형. 1 - 음성 통화, 2 - 영상 통화

switchCallMediaType

통화 유형을 변경합니다.
이 API는 1v1 통화에만 작동합니다.
ERROR 콜백 전환 실패. code: 60001
// 1 음성 통화; 2 영상 통화
tuiCallEngine.switchCallMediaType(2).then(() => {
//success
}).catch(error => {
console.warn('switchCallMediaType error:', error);
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
newMediaType
Number
1-음성 통화, 2-영상 통화

startRemoteView

이 API는 원격 비디오 렌더링을 시작하는 데 사용됩니다. USER_VIDEO_AVAILABLE 이벤트를 수신한 후 해당 원격 비디오 렌더링을 시작합니다.
let promise = tuiCallEngine.startRemoteView({
userID: 'user1',
videoViewDomID: 'video_1',
});
promise.then(() => {
//success
}).catch(error => {
console.warn('startRemoteView error:', error);
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
userID
String
사용자 ID
videoViewDomID
String
사용자의 데이터는 이 dom id 노드에서 렌더링됩니다

stopRemoteView

이 API는 원격 비디오 렌더링을 중지하는 데 사용됩니다
tuiCallEngine.stopRemoteView({userID: 'user1'});
매개변수는 다음과 같습니다:
매개변수
유형
설명
userID
String
사용자 id

startLocalView

이 API는 로컬 비디오 렌더링을 시작하는 데 사용됩니다
let promise = tuiCallEngine.startLocalView({
userID: 'user1',
videoViewDomID: 'video_1'
});
promise.then(() => {
//success
}).catch(error => {
console.warn('startLocalView error:', error);
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
userID
String
사용자 ID
videoViewDomID
String
사용자의 데이터는 이 dom id 노드에서 렌더링됩니다

stopLocalView

이 API는 로컬 비디오 렌더링을 중지하는 데 사용됩니다
let promise = tuiCallEngine.stopLocalView({userID: 'user1'});
promise.then(() => {
//success
}).catch(error => {
console.warn('stopLocalView error:', error)
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
userID
String
사용자 ID

openCamera

이 API는 카메라를 켜는 데 사용됩니다.
tuiCallEngine.openCamera().then(() => {
//success
}).catch(error => {
console.warn('openCamera error:', error);
});

closeCamara

이 API는 카메라를 끄는 데 사용됩니다
tuiCallEngine.closeCamera().then(() => {
//success
}).catch(error => {
console.warn('closeCamara error:', error);
});

openMicrophone

이 API는 마이크를 켜는 데 사용됩니다.
tuiCallEngine.openMicrophone().then(() => {
//success
}).catch(error => {
console.warn('openMicrophone error:', error);
});

closeMicrophone

이 API는 마이크를 끄는 데 사용됩니다.
tuiCallEngine.closeMicrophone().then(() => {
//success
}).catch(error => {
console.warn('closeMicrophone error:', error);
});

setVideoQuality

이 API는 비디오 품질을 설정하는 데 사용됩니다.
const profile = '720p';
tuiCallEngine.setVideoQuality(profile).then(() => {
//success
}).catch(error => {
console.warn('setVideoQuality error:', error)
}); // 비디오 품질을 720p로 설정
매개변수는 다음과 같습니다:
비디오 Profile
해상도(너비 x 높이)
480p
640 × 480
720p
1280 × 720
1080p
1920 × 1080

getDeviceList

이 API는 장치 목록을 가져오는 데 사용됩니다.
tuiCallEngine.getDeviceList("camera").then((devices) => {
console.log(devices);
}).catch(error => {
console.warn('getDeviceList error:', error);
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
deviceType
String
장치 유형. 유효한 값: ‘camera’-카메라, ‘microphones’-마이크

switchDevice

이 API는 다른 카메라나 마이크로 변경하는 데 사용됩니다.
let promsie = tuiCallEngine.switchDevice({
deviceType: 'video',
deviceId: cameras[0].deviceId
});
promise.then(() => {
//success
}).catch(error => {
console.warn('switchDevice error:', error)
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
deviceType
String
변경할 장치의 유형
‘video’ 카메라
‘audio’ 마이크
deviceId
String
변경할 장치의 ID
getCameras()를 사용하여 카메라 ID 가져오기
getMicrophones()를 사용하여 마이크 ID 가져오기

enableAIVoice

AI 노이즈 캔슬링을 활성화/비활성화합니다.
주의사항:
AI 노이즈 캔슬링은 v4.12.1 이상에서 지원됩니다. 자세한 내용은 튜토리얼: AI 노이즈 캔슬링 활성화를 참고하십시오.
let promsie = tuiCallEngine.enableAIVoice(true);
promise.then(() => {
// success
}).catch(error => {
console.warn('enableAIVoice error:', error)
});
매개변수는 다음과 같습니다:
매개변수
유형
설명
enable
Boolean
AI 노이즈 캔슬링 활성화 또는 비활성화 여부입니다. enable=true(기본값)는 AI 노이즈 캔슬링이 활성화됨 표시