TUICallEngine
TUICallEngine API
TUICallEngine은 UI 요소를 포함하지 않는 음성/영상 통화 컴포넌트입니다.
API 개요
API | 설명 |
TUICallEngine 인스턴스 생성(싱글톤 모드) | |
TUICallEngine 인스턴스 종료(싱글톤 모드) | |
이벤트 수신 | |
이벤트 수신 중지 | |
로그인 | |
로그아웃 | |
대화명 및 프로필 사진 설정 | |
C2C 통화 하기 | |
그룹 통화하기 | |
통화 수락 | |
통화 거절 | |
통화 종료 | |
현재 그룹 통화에 사용자를 초대 | |
현재 그룹 통화에 참여 | |
통화 유형 변경 | |
원격 비디오 렌더링 시작 | |
원격 비디오 렌더링 중지 | |
로컬 비디오 렌더링 시작 | |
로컬 비디오 렌더링 중지 | |
카메라 켜기 | |
카메라 끄기 | |
마이크 켜기 | |
마이크 끄기 | |
비디오 품질 설정 | |
장치 목록 가져오기 | |
다른 카메라/마이크로 변경 | |
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 userIDuserSig: '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 | |
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
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 노이즈 캔슬링을 활성화/비활성화합니다.
주의사항:
let promsie = tuiCallEngine.enableAIVoice(true);promise.then(() => {// success}).catch(error => {console.warn('enableAIVoice error:', error)});
매개변수는 다음과 같습니다:
매개변수 | 유형 | 설명 |
enable | Boolean | AI 노이즈 캔슬링 활성화 또는 비활성화 여부입니다. enable=true(기본값)는 AI 노이즈 캔슬링이 활성화됨 표시 |