更新记录
1.0.1(2026-01-21)
一、文档细则补充
1.0.0(2026-01-21)
- 初始版本发布
- 支持 DUIX 数字人模型加载与渲染
- 支持音频播放(WAV 文件、PCM 流)
- 支持动作控制(命名动作、随机动作)
- 支持音量控制和静音
- 完整的事件回调机制
更新日志
[1.0.0] - 2026-01-13
新增
- 初始版本发布
- 支持 DUIX 数字人模型加载与渲染
- 支持音频播放(WAV 文件、PCM 流)
- 支持动作控制(命名动作、随机动作)
- 支持音量控制和静音
- 完整的事件回调机制
技术实现
- 采用组件化设计,视图组件 + API 方法
- Hybrid.kt 作为核心能力入口
- HlDuixViewNativeView.kt 实现数字人视图
- 完整的生命周期管理
平台支持
- Android: 完整支持(minSdk 24)
- iOS: 完整支持(iOS 12.0+)
- HarmonyOS: 暂不支持
平台兼容性
uni-app(4.76)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | × | × | × | - | 5.0 | 12 | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - |
DUIX 数字人视图插件
基于 DUIX SDK 的数字人渲染与交互 UTS 插件,支持 Android 和 iOS 双平台。
功能特性
- 数字人模型加载与渲染
- 背景图片设置
- 音频播放(WAV 文件)
- PCM 音频流播放(支持流式 TTS)
- 动作控制(命名动作、随机动作)
- 音量控制
- 完整的事件回调机制
- 调试模式
- 资源下载与本地复制(iOS 和 Android)
平台支持
- Android:完整支持(minSdk 24)
- iOS:完整支持(iOS 12.0+)
使用方法
基本用法
注意( )需要在nvue页面中使用
<template>
<view class="container">
<hl-duix-view
ref="duixView"
:modelUrl="modelUrl"
:backgroundUrl="backgroundUrl"
:debug="true"
:autoInit="false"
@init-ready="onInitReady"
@init-error="onInitError"
@audio-play-start="onAudioPlayStart"
@audio-play-end="onAudioPlayEnd"
style="width: 100%; height: 100%;"
/>
</view>
</template>
<script setup>
import { ref, onReady } from 'vue'
const duixView = ref(null)
const modelUrl = ref('https://example.com/model.zip')
const backgroundUrl = ref('/static/bg.png')
onReady(() => {
// 手动初始化
duixView.value.initialize(modelUrl.value)
})
const onInitReady = (e) => {
console.log('DUIX 初始化成功', e.modelInfo)
// 可以开始播放音频或控制动作
}
const onInitError = (e) => {
console.error('DUIX 初始化失败', e.message)
}
const onAudioPlayStart = () => {
console.log('音频播放开始')
}
const onAudioPlayEnd = () => {
console.log('音频播放结束')
}
// 播放音频
const playAudio = () => {
duixView.value.playAudio('/path/to/audio.wav')
}
// 启动动作
const startMotion = () => {
duixView.value.startMotion('smile', true)
}
// 设置音量
const setVolume = (volume) => {
duixView.value.setVolume(volume)
}
</script>
流式 TTS 播放示例
// 开始 PCM 推送
duixView.value.startPushPcm()
// 推送 PCM 数据(base64 格式)
const base64Data = uni.arrayBufferToBase64(pcmBuffer)
duixView.value.pushPcmDataBase64(base64Data)
// 停止推送
duixView.value.stopPushPcm()
API 文档
Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| modelUrl | String | "" | 模型 URL 或本地路径(必需) |
| backgroundUrl | String | "" | 背景图片 URL 或本地路径 |
| debug | Boolean | false | 是否启用调试模式 |
| autoInit | Boolean | true | 是否自动初始化 |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| init-ready | { modelInfo } | 初始化成功 |
| init-error | { message, debugInfo } | 初始化失败 |
| audio-play-start | - | 音频播放开始 |
| audio-play-end | - | 音频播放结束 |
| audio-play-error | { message } | 音频播放错误 |
| motion-start | - | 动作开始 |
| motion-end | - | 动作结束 |
| debug | { message } | 调试消息(仅 debug=true) |
Methods
| 方法名 | 参数 | 说明 |
|---|---|---|
| initialize(url?) | url?: String | 手动初始化 DUIX |
| playAudio(filePath) | filePath: String | 播放音频文件 |
| playPcmStream(filePath) | filePath: String | 播放 PCM 流 |
| startPushPcm() | - | 开始推送 PCM 数据 |
| pushPcmData(data) | data: ByteArray/Data | 推送 PCM 数据 |
| pushPcmDataBase64(data) | data: String | 推送 PCM 数据(base64) |
| stopPushPcm() | - | 停止推送 PCM 数据 |
| startMotion(name, immediate) | name: String, immediate: Boolean | 启动指定动作 |
| startRandomMotion(enabled) | enabled: Boolean | 启动随机动作 |
| setVolume(volume) | volume: Number (0.0-1.0) | 设置音量 |
| stopAudio() | - | 停止音频播放 |
| destroy() | - | 释放资源 |
UTS API 方法
插件还提供了独立的 API 方法用于资源管理:
import { downloadBaseConfig, downloadModel, copyLocalResource } from '@/uni_modules/hl-duix-view'
// 下载基础配置
await downloadBaseConfig('https://example.com/config.zip', (result) => {
console.log(result.event, result.progress, result.message)
})
// 下载模型
await downloadModel('https://example.com/model.zip', (result) => {
console.log(result.event, result.progress, result.message)
})
// 复制本地资源
await copyLocalResource('/path/to/source', 'targetName', (result) => {
console.log(result.event, result.progress, result.message)
})
注意事项
通用
-
权限要求:需要网络、音频录制、存储读写权限
-
模型格式:支持 DUIX SDK 标准模型格式(.zip)
-
音频格式:
- WAV:标准 WAV 格式
- PCM:16kHz、16-bit、单声道
-
资源释放:页面卸载时会自动调用
destroy() -
PCM 流式播放:需要至少 1 秒的音频数据(32000 字节)才能驱动口型
-
背景图路径:
- 在 nvue 页面中需要转换为绝对路径:
// #ifdef APP-PLUS bgImage.value = plus.io.convertLocalFileSystemURL('_www/static/bg.png') // #endif
- 在 nvue 页面中需要转换为绝对路径:

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 273
赞赏 2
下载 13548282
赞赏 1850
赞赏
京公网安备:11010802035340号