TUICallEngine
TUICallEngine APIの概要
TUICallEngine APIはオーディオビデオ通話コンポーネントのUIインターフェースがないものです。
API概要
API | 説明 |
TUICallEngineのインスタンス(シングルトンモード)を作成します | |
TUICallEngineのインスタンス(シングルトンモード)を破棄します | |
イベントの監視 | |
イベントの監視をキャンセルします | |
インターフェースにログインします | |
インターフェースからログアウトします | |
ユーザーニックネームおよびプロフィール画像を設定します | |
C2C通話に招待します | |
グループチャット通話に招待します | |
通話に応答します | |
通話を拒否します | |
通話を終了します | |
グループ通話で、他の人を招待します | |
現在のグループ通話に自主的に参加します | |
現在の通話タイプを切り替えます | |
リモート画面のレンダリングを起動します | |
リモート画面のレンダリングを停止します | |
ローカル画面のレンダリングを起動します | |
ローカル画面のレンダリングを停止します | |
カメラをオンにします | |
カメラをオフにします | |
マイクをオンにします | |
マイクをオフにします | |
ビデオ画質を設定します | |
デバイスリストを取得します | |
カメラまたはマイクデバイスを切り替えます | |
AIノイズリダクションのオン/オフ |
APIの詳細
createInstance
TUICallEngineのシングルトンを作成します。
const tuiCallEngine = TUICallEngine.createInstance({SDKAppID: 0, // アクセス時に、0をIMアプリケーションのSDKAppIDに置き換える必要がありますtim: tim // timパラメータはサービス内にすでに存在するTIMインスタンスに使用され、TIMインスタンスの一意性を保証します});
パラメータは下表に示すとおりです
パラメータ | タイプ | 意味 |
SDKAppID | Number | Instant MessagingアプリケーションのSDKAppID |
tim | Any | TIMインスタンス(オプション) |
destroyInstance
TUICallEngineのシングルトンを破棄します。
tuiCallEngine.destroyInstance().then(() => {//success}).catch(error => {console.warn('destroyInstance error:', error);});
on
イベントを監視します。
let onError = function(error) {console.log(error);};tuiCallEngine.on(TUICallEvent.ERROR, onError, this);
パラメータは下表に示すとおりです
パラメータ | タイプ | 意味 |
eventName | String | イベント名 |
callback | function | イベントレスポンスコールバック |
context | Any | callback実行希望時のコンテキスト |
off
イベントの監視をキャンセルします。
let onError = function(error) {console.log(error);};tuiCallEngine.off(TUICallEvent.ERROR, onError, this);
パラメータは下表に示すとおりです
パラメータ | タイプ | 意味 |
eventName | String | イベント名 |
callback | function | イベントレスポンスコールバック |
context | Any | callback実行希望時のコンテキスト |
login
インターフェースにログインします。
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 |
logout
インターフェースからログアウトします。
let promise = tuiCallEngine.logout();promise.then(() => {//success}).catch(error => {console.warn('logout error:', error);});
setSelfInfo
ユーザーニックネームおよびプロフィール画像を設定します。
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 | プロフィール画像アドレス |
call
C2Cの通話に招待します。被招待者はTUICallEvent.INVITEDイベントを受信します。
ご注意:
オフラインプッシュは端末(AndroidまたはiOS)にのみ適用され、WebおよびWeChat Mini Programではサポートされません。
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
IMグループの通話に招待します。被招待者は
EVENT.INVITED
イベントを受信します。ご注意:
オフラインプッシュは端末(AndroidまたはiOS)にのみ適用され、WebおよびWeChat Mini Programではサポートされません。
let promise = tuiCallEngine.groupCall({userIDList: ['user1', 'user2'],type: 1,groupID: 'IMグループID',});promise.then(() => {//success}).catch(error => {console.warn('groupCall error:', error);});
パラメータは下表に示すとおりです
パラメータ | タイプ | 意味 |
userIDList | Array | 招待リスト |
type | Number | 0-不明、1-音声通話、2-ビデオ通話 |
groupID | String | IMグループ |
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
被招待者として
TUICallEvent.INVITED
イベントのコールバックを受信した場合は、このインターフェースを呼び出して通話に応答することができます。tuiCallEngine.on(TUICallEvent.INVITED, () => {tuiCallEngine.accept().promise.then(() => {//success}).catch(error => {console.warn('accept error:', error);});});
reject
現在の通話を拒否します。着呼側として
TUICallEvent.INVITED
のコールバックを受信した場合は、この関数を呼び出して通話を拒否することができます。tuiCallEngine.on(TUICallEvent.INVITED, () => {tuiCallEngine.reject().then(() => {//success}).catch(error => {console.warn('reject error:', error);});});
hangup
現在の通話を終了します。通話中である場合は、この関数を呼び出して通話を終了できます。
通話中にこのインターフェースを呼び出せば、通話を終了することができます
ダイヤルしていない状態では、通話をキャンセルするために用いることができます
tuiCallEngine.hangup().then(() => {//success}).catch(error => {console.warn('hangup error:', error);});
inviteUser
今回のグループ通話にユーザーを招待します。
ユースケース:グループ通話中のユーザーが自主的に他の人を招待する場合に使用します。
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
今回のグループ通話に自主的に参加します。
ユースケース:グループ内のユーザーが今回のグループ通話に自主的に参加する場合に使用します。
const params = {roomID: 123,type: 1,groupID: 111};tuiCallEngine.joinInGroupCall(params).then(() => {// success}).catch(error => {console.error('joinInGroupCall error:', error);});
パラメータは下表に示すとおりです。
パラメータ | タイプ | 意味 |
roomID | Number | 今回の通話のオーディオビデオルームID。現在は数字のルームナンバーのみサポートしています。文字列のルームナンバーは今後のバージョンでサポート予定です |
groupID | String | このグループ通話のグループID |
type | Number | 通話のメディアタイプ。例:1-音声通話、2-ビデオ通話 |
switchCallMediaType
現在の通話タイプを切り替えます。
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
リモート画面のレンダリングを停止します
tuiCallEngine.stopRemoteView({userID: 'user1'});
パラメータは下表に示すとおりです
パラメータ | タイプ | 意味 |
userID | String | ユーザーid |
startLocalView
ローカル画面のレンダリングを起動します
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
ローカル画面のレンダリングを停止します
let promise = tuiCallEngine.stopLocalView({userID: 'user1'});promise.then(() => {//success}).catch(error => {console.warn('stopLocalView error:', error)});
パラメータは下表に示すとおりです
パラメータ | タイプ | 意味 |
userID | String | ユーザーID |
openCamera
カメラをオンにします。
tuiCallEngine.openCamera().then(() => {//success}).catch(error => {console.warn('openCamera error:', error);});
closeCamara
カメラをオフにします
tuiCallEngine.closeCamera().then(() => {//success}).catch(error => {console.warn('closeCamara error:', error);});
openMicrophone
マイクをオンにします。
tuiCallEngine.openMicrophone().then(() => {//success}).catch(error => {console.warn('openMicrophone error:', error);});
closeMicrophone
マイクをオフにします。
tuiCallEngine.closeMicrophone().then(() => {//success}).catch(error => {console.warn('closeMicrophone error:', error);});
setVideoQuality
ビデオ画質を設定します。
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
デバイスリストを取得します。
tuiCallEngine.getDeviceList("camera").then((devices) => {console.log(devices);}).catch(error => {console.warn('getDeviceList error:', error);});
パラメータは下表に示すとおりです
パラメータ | タイプ | 意味 |
deviceType | String | 'camera'-カメラ、'microphones'-マイク |
switchDevice
カメラまたはマイクデバイスを切り替えます。
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()で取得します マイクデバイスの識別子は、getMicrophones()で取得します |
enableAIVoice
AIノイズリダクションのオン/オフ。
ご注意:
let promsie = tuiCallEngine.enableAIVoice(true);promise.then(() => {// success}).catch(error => {console.warn('enableAIVoice error:', error)});
パラメータは下表に示すとおりです
パラメータ | タイプ | 意味 |
enable | Boolean | AIノイズリダクションのオン/オフ。enable=trueはオンを示し、デフォルトではAIノイズリダクションはオンになっています |