<template>
<view>
<view class="area">
<textarea @input="iptHandle"
style="width: 100%;border: 1px solid #ccc;padding: 15px;background-color: #f2f2f2;margin-bottom: 15px;" />
<button type="default" @click="start">文本转语音播报</button>
<button type="default" @click="stop">播报暂停</button>
<button type="default" @click="getEnginesList">获取手机播报引擎</button>
</view>
<view class="eng-list" style="padding: 15px;">
<view class="title">
<text style="font-weight: bold;font-size: 20px;margin-bottom: 10px;">播报情况:</text>
</view>
<view v-for="(i,k) in engineList" :key='k' class="item">
{{i}}
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import {ref} from 'vue';
import { startSpeech, getEngines, stopSpeech, continueSpeech, pauseSpeech } from "@/uni_modules/xwq-tts-speaker";
import { Option, Info } from "@/uni_modules/xwq-tts-speaker/utssdk/interface.uts";
const iptVal = ref("");
const engineList = ref([]);
let num=0;
const iptHandle = (e : UniInputEvent) => {
iptVal.value = e.detail.value;
};
let repeatPlay:(() => void) | null = null;
repeatPlay=function(){
num++
console.log('重复播放===',num)
startSpeech(
{
content: iptVal.value,
enginesName: null, //自定义第三方TTS引擎,前提是手机上已安装
speechRate: 1.5,//播报速度,有些系统TTS不支持设置
pitch: 0.4,//语调设置,默认1,越小越像男生
fail: (val : Info) => {
console.log(val);
},
finish: () => {
console.log('播报结束');
repeatPlay?.()
}
} as Option)
}
//开始播报,在开始之前要先初始化TTS,成功后再开始
const start = () => {
// repeatPlay?.()
startSpeech(
{
content: iptVal.value,
enginesName: null, //自定义第三方TTS引擎,前提是手机上已安装
// speechRate: 0.5,//播报速度,有些系统TTS不支持设置
pitch: 0.4,//语调设置,默认1,越小越像男生
fail: (val : Info) => {
console.log(val);
},
finish: () => {
console.log('播报结束')
engineList.value.push(`${iptVal.value}---播报结束`)
}
} as Option)
};
//停止播报
const stop = () => {
stopSpeech();
};
//获取引擎列表,没有默认系统TTS
const getEnginesList = () => {
let result = getEngines();
engineList.value = result;
}
</script> - 发布:2026-01-27 11:12
- 更新:2026-01-27 11:13
- 阅读:19
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10
HBuilderX类型: 正式
HBuilderX版本号: 4.87
浏览器平台: Chrome
浏览器版本: 144
项目创建方式: HBuilderX
示例代码:
操作步骤:
可以下载这个插件运行到web浏览器》》https://ext.dcloud.net.cn/plugin?id=21718
可以下载这个插件运行到web浏览器》》https://ext.dcloud.net.cn/plugin?id=21718
预期结果:
正常运行
正常运行
实际结果:
报错
报错
bug描述:
加密版运行报一下错误,源码版可以正常运行
10:58:34.885 [plugin:vite:esbuild] Transform failed with 1 error:
10:58:34.885 F:/git/uniapp/testV3UniappPlugin/uni_modules/xwq-tts-speaker/utssdk/web/index.uts:1:0: ERROR: Unexpected "�"
10:58:34.886 at uni_modules/xwq-tts-speaker/utssdk/web/index.uts:1:0
10:58:34.886
10:58:34.886 Unexpected "�"
10:58:34.886 1 | �k�z�z�F���QSw,؆�����D�R�x�Ց�P�[9>��t���^ӭ5GGI1?#A��<N�4�����.m�'
10:58:34.886 | ^
10:58:34.886 2 | [��x�g�[~ąZ���eY��&�6�[�>
1 个回复
Ask小助手 - Ask社区AI助手
您好,经核实,您遇到的问题并非 Bug,而是 UTS 插件在 web 端调试阶段 的已知限制。下面为您详细说明原因及后续建议:
加密版 UTS 插件 仅支持云端 App 打包
根据官方文档 UTS 插件加密规则,加密文件在 web 端调试时不会被解密,因此 Vite 会把加密后的二进制内容当成源码解析,出现
这类乱码报错是预期行为。
web 目录下的 ts/js 文件 默认不加密
为了方便调试,web 端始终使用源码;只有在 App 云端打包 时才会对 uts 及相关原生代码进行加密处理。
正确姿势
版本确认
您当前 HBuilderX 4.87 已是最新正式版,无需升级。
总结:
这不是框架缺陷,而是加密插件的使用边界限制。建议您 web 端保持源码版调试,App 端使用加密版云打包 即可。如有进一步疑问,可在插件市场该插件页面留言或加入官方交流群继续沟通。
要回复问题请先登录或注册
公告
更多>相关问题