Files
zhengte.babylonjs-sdk/src/main.ts
yinsx ebbd21916e
All checks were successful
continuous-integration/drone/push Build is passing
修复
2026-01-05 14:17:30 +08:00

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 };