1.2 快速开始

本章提供一个最小可用示例,帮助你在 5 分钟内跑通数字人渲染。

前置条件

在开始之前,确保你已具备:

创建驱动应用,设置虚拟人角色、音色、表演风格,获取App ID、App Secret

  1. 请登录魔珐星云,在应用中心创建驱动应用,选择角色、音色、表演风格。
    这张图片是魔珐星云平台的应用管理页面,对应文档中创建驱动应用的第一步操作场景。页面左侧为功能导航栏,当前选中“应用管理”板块,上方导航栏包含“驱动应用”“视频应用”等选项,页面中央设有标注为“创建新应用”的带加号的功能按钮,用于创建新的驱动应用,匹配了文档中要求在魔珐星云应用中心创建驱动应用,选择角色、音色、表演风格的操作指引。
  2. 复制获取App ID和App Secret
    图片展示的是在魔珐星云中接入SDK的界面。界面上方有“接入SDK”和“接入文档”按钮,下方有App ID和App Secret输入框,以及“复制”按钮。下方还列出了接入步骤,包括复制应用的AppID和AppSecret,打开文档参考示例完成初始化,以及在网页、App或任意编辑中调用星云能力等内容。该图片与文档中“第一步:引入SDK”部分对应,直观呈现了接入SDK的具体操作界面。

第一步:引入 SDK

在页面中通过 <script> 标签引入 SDK 文件,SDK 会自动将 XmovAvatar 暴露到 window 全局对象上。

<script src="https://media.xingyun3d.com/xingyun3d/general/litesdk/xmovAvatar@latest.js"></script>

引入后即可通过 window.XmovAvatar 使用。

第二步:准备容器

<div id="avatar-container" style="width: 360px; height: 640px;"></div>

注意:容器必须有明确的宽高,SDK 会在容器内创建 Canvas 元素进行渲染。

第三步:初始化与启动

// 1. 创建实例
const avatar = new XmovAvatar({
containerId: '#avatar-container', // 容器 CSS 选择器
appId: 'your-app-id', // 应用 ID
appSecret: 'your-app-secret', // 应用密钥
gatewayServer: 'https://nebula-agent.xingyun3d.com/user/v1/ttsa/session', // 网关地址(固定值)

// 错误回调(必须)
onMessage(error) {
console.error('SDK 错误:', error.code, error.message);
},

// 状态变化回调(推荐定义)
onStatusChange(status) {
console.log('状态变更:', status);
},
});

// 2. 初始化(加载资源、建立连接,完成后自动启动渲染)
await avatar.init({
onDownloadProgress(progress) {
console.log('加载进度: ', `${progress}%`);
},
});

第四步:发送语音

// 让数字人说话(SSML 格式)
avatar.speak('<speak>你好,我是你的数字人助手!</speak>');

第五步:清理资源

// 页面卸载时销毁实例
window.addEventListener('beforeunload', () => {
avatar.destroy('page_unload');
});

完整示例

注意:请将示例中的 your-app-idyour-app-secret 替换为你自己的 App ID 和 App Secret,否则数字人无法正常加载。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>数字人快速开始</title>
<style>
#avatar-container {
width: 360px;
height: 640px;
margin: 20px auto;
border: 1px solid #eee;
}
</style>
</head>
<body>
<div id="avatar-container"></div>

<!-- 引入 SDK -->
<script src="https://media.xingyun3d.com/xingyun3d/general/litesdk/xmovAvatar@latest.js"></script>

<script>
const avatar = new XmovAvatar({
containerId: '#avatar-container',
appId: 'your-app-id',
appSecret: 'your-app-secret',
gatewayServer: 'https://nebula-agent.xingyun3d.com/user/v1/ttsa/session',
onMessage(error) {
console.error('SDK 错误:', error.code, error.message);
},
onStatusChange(status) {
console.log('状态变更:', status);
},
});

avatar.init({
onDownloadProgress(progress) {
console.log('加载进度:', `${progress}%`);
},
}).then(() => {
// 示例:3 秒后让数字人说话
setTimeout(() => {
avatar.speak('<speak>你好,这里是魔珐星云!</speak>');
}, 3000);
}).catch((err) => {
console.error('初始化失败:', err);
});

window.addEventListener('beforeunload', () => {
avatar.destroy('page_unload');
});
</script>
</body>
</html>

运行效果

成功初始化后,你将看到:

  1. 容器中出现数字人画面
  2. 调用 speak() 后数字人开始说话,口型和表情与语音同步
    演示视频:SDK 初始化加载与数字人说话效果