@tencentcloud/call-uikit-vue2
Version:
An Open-source Voice & Video Calling UI Component Based on Tencent Cloud Service.
52 lines (45 loc) • 1.42 kB
text/typescript
// @ts-ignore
import { aiAssistant } from '../../Components/components/common/AIAssistant/index';
import { getRemoteUserProfile } from './utils';
interface IAIAssistant {
enableAISubtitle: (enable: boolean) => void;
setEngineInstance: (engineInstance: any) => void;
setImInstance: (imInstance: any) => void;
};
export class AIAssistant implements IAIAssistant {
static instance: IAIAssistant;
private _tuiCallEngine: any = null;
private _imInstance: any = null;
static getInstance() {
if (!AIAssistant.instance) {
AIAssistant.instance = new AIAssistant();
}
return AIAssistant.instance;
}
public enableAISubtitle(enable: boolean): void {
this._tuiCallEngine?.reportLog?.({
name: 'TUICallKit.enableAISubtitle.start',
data: { enable },
});
const trtcCloudInstance = this._tuiCallEngine.getTRTCCloudInstance();
const getNickName = async(userId: string) => {
const res = await getRemoteUserProfile([userId], this._imInstance);
return res.length ? res[0] : [];
}
if (enable) {
aiAssistant.initASR({
trtcCloudInstance,
// @ts-ignore
getNickName,
});
} else {
aiAssistant.destroyASR();
}
}
public setEngineInstance(engineInstance: any): void {
this._tuiCallEngine = engineInstance;
}
public setImInstance(imInstance: any): void {
this._imInstance = imInstance;
}
}