67 lines
1.6 KiB
TypeScript
67 lines
1.6 KiB
TypeScript
import { MainApp } from './babylonjs/MainApp';
|
|
import { AppConfig } from './babylonjs/AppConfig';
|
|
import configurator, { ConfiguratorParams } from './components/conf';
|
|
import auth from './components/auth';
|
|
import { on } from './utils/event';
|
|
|
|
declare global {
|
|
interface Window {
|
|
faceSDK?: Record<string, unknown>;
|
|
yiyu?: Record<string, unknown>;
|
|
}
|
|
}
|
|
|
|
type InitParams = {
|
|
container?: string;
|
|
modelUrlList?: string[];
|
|
onSuccess?: () => void;
|
|
onError?: (error?: unknown) => void;
|
|
env?: {
|
|
envPath?: string;
|
|
intensity?: number;
|
|
rotationY?: number;
|
|
};
|
|
};
|
|
|
|
let mainApp: MainApp | null = null;
|
|
|
|
const kernel = {
|
|
/** 初始化应用 */
|
|
init: async function (params: InitParams): Promise<void> {
|
|
if (!params) { console.error('params is required'); return; }
|
|
|
|
mainApp = new MainApp();
|
|
mainApp.loadAConfig({
|
|
container: params.container || 'renderDom',
|
|
modelUrlList: params.modelUrlList || [],
|
|
success: params.onSuccess ?? null,
|
|
error: params.onError ?? null,
|
|
env: params.env
|
|
});
|
|
|
|
await mainApp.Awake();
|
|
await mainApp.loadModel();
|
|
},
|
|
|
|
};
|
|
|
|
if (!window.faceSDK) {
|
|
window.faceSDK = {};
|
|
}
|
|
window.faceSDK.kernel = kernel;
|
|
|
|
if (!window.yiyu) {
|
|
window.yiyu = {};
|
|
}
|
|
window.yiyu.kernel = kernel;
|
|
|
|
window.yiyu.onAppLoaded = () => { };
|
|
window.yiyu.onSingleSignFinished = (_text: string) => { };
|
|
window.yiyu.onSentenceFinished = (_text: string) => { };
|
|
window.yiyu.onSentenceChanged = (_data: unknown) => { };
|
|
window.yiyu.onGloss = (_gloss: unknown) => { };
|
|
|
|
window.onload = () => { };
|
|
|
|
export { kernel };
|