更新记录
1.0.0(2026-06-15) 下载此版本
first
平台兼容性
uni-app(4.01)
| Vue2 | Vue2插件版本 | Vue3 | Vue3插件版本 | Chrome | Safari | app-vue | app-vue插件版本 | app-nvue | app-nvue插件版本 | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | √ | 1.0.0 | × | × | √ | 1.0.0 | √ | 1.0.0 | 5.0 | 1.0.0 | 12 | 1.0.0 | √ | 1.0.0 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | - | × | × |
uni-app x(4.01)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 | 微信小程序 |
|---|---|---|---|---|---|---|---|---|
| × | × | 5.0 | 1.0.0 | 12 | 1.0.0 | √ | 1.0.0 | × |
w-tts-speaker UTS 插件发布文档
功能简介
w-tts-speaker 是一个跨平台文本转语音(TTS)插件,支持在 uni-app 的 App 端(Android / iOS / 鸿蒙)将文本内容转换为语音播放。插件封装了系统原生 TTS 引擎:
- Android:基于
android.speech.tts.TextToSpeech系统 API,最低支持 Android SDK 19 - iOS:基于
AVFoundation.AVSpeechSynthesizer,最低支持 iOS 12 - 鸿蒙(HarmonyOS):基于
@ohos.ai.textToSpeech系统 API
平台兼容性
| 平台 | 支持状态 | 说明 |
|---|---|---|
| Android (App) | ✅ 支持 | minSdkVersion 19 |
| iOS (App) | ✅ 支持 | deploymentTarget 12 |
| HarmonyOS (App) | ✅ 支持 | 基于 @ohos.ai.textToSpeech |
| H5 (移动端) | ❌ 不支持 | — |
| H5 (PC端) | ❌ 不支持 | — |
| 微信小程序 | ❌ 不支持 | — |
| 其他小程序平台 | ❌ 不支持 | — |
| 快应用 | ❌ 不支持 | — |
API 参考
类型定义
// 语音播报结果
type TSpeakResult = {
success: number // 0 成功,非0 失败
message: string // 结果描述信息
}
// TTS 初始化参数(预留)
type TSpeakInitParams = {
lang: string
country: string
speechRate?: number
}
// 回调函数类型
type TtsCallback = (res: TSpeakResult) => void
// 构造选项
type TtsSpeakerOptions = {
callback?: TtsCallback | null // 初始化完成回调
language: "ZH" | "EN" | string // 语言选择
}
TtsSpeaker 类
构造函数
new TtsSpeaker(options: TtsSpeakerOptions)
创建 TTS 扬声器实例并初始化语音引擎。
参数说明:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
language |
"ZH" | "EN" | string |
是 | 语音语言。"ZH" 对应中文(Android: Locale.CHINA / iOS: zh-CN),"EN" 对应英文(Android: Locale.ENGLISH / iOS: en-US) |
callback |
TtsCallback | null |
否 | 初始化完成回调,返回 TSpeakResult 结果 |
回调结果(Android):
| success | message | 说明 |
|---|---|---|
| 0 | TTS 初始化成功 |
引擎就绪 |
| -1 | TTS 初始化失败 |
引擎初始化失败 |
| -1 | 语言数据丢失 |
缺少对应语言的语音数据包 |
| -1 | 不支持该语言 |
设备不支持所选语言 |
回调结果(iOS):
| success | message | 说明 |
|---|---|---|
| 0 | 初始化成功 |
引擎就绪 |
回调结果(鸿蒙):
| success | message | 说明 |
|---|---|---|
| 0 | TTS 初始化成功 |
引擎就绪 |
| -1 | TTS 初始化失败 |
引擎初始化失败 |
speechMessage(msg: string): Promise\<void>
将指定文本转换为语音并播放。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
msg |
string |
是 | 需要语音播报的文本内容 |
注意:
- Android 端使用
QUEUE_FLUSH模式,调用后会清空待播放队列并立即播放新内容 - iOS 端调用前会自动设置
AVAudioSession为ambient类别(可与其它音频共存) - 鸿蒙端使用
SPEAK_MODE_SYNC模式,同步播放
stopSpeech(): void
停止当前正在播放的语音。
- Android:调用
TextToSpeech.stop() - iOS:调用
AVSpeechSynthesizer.stopSpeaking(at: .immediate),立即停止 - 鸿蒙:调用
textToSpeech.stop(),立即停止
使用示例
基本用法
import { TtsSpeaker } from '@/uni_modules/w-tts-speaker';
// 创建 TTS 实例(中文)
const speaker = new TtsSpeaker({
language: "ZH",
callback: (res) => {
if (res.success === 0) {
console.log("TTS 初始化成功");
// 初始化完成后播放文本
speaker.speechMessage("你好,世界!");
} else {
console.error("TTS 初始化失败:", res.message);
}
}
});
// 停止播放
speaker.stopSpeech();
英文播报
const speaker = new TtsSpeaker({
language: "EN",
callback: (res) => {
if (res.success === 0) {
speaker.speechMessage("Hello, world!");
}
}
});
使用 async/await
const speaker = new TtsSpeaker({
language: "ZH"
});
// speechMessage 返回 Promise,可以 await
await speaker.speechMessage("请注意,前方有障碍物。");
console.log("播报完成");
权限配置
Android
插件无需额外声明运行时权限,系统 TTS 引擎由 Android 系统内置支持。但如果设备未安装 TTS 语音数据包,初始化时会回调 success: -1, message: "语言数据丢失",需引导用户下载语音数据。
如需在 AndroidManifest.xml 中添加权限,可在 utssdk/app-android/AndroidManifest.xml 中配置。
iOS
插件无需额外权限配置。播报音频自动使用 AVAudioSession.Category.ambient 类别,可与背景音乐等其他音频共存。
依赖信息
本插件无第三方依赖,仅使用系统原生 API:
| 平台 | 系统 API |
|---|---|
| Android | android.speech.tts.TextToSpeech |
| iOS | AVFoundation.AVSpeechSynthesizer、AVAudioSession |
| 鸿蒙 | @ohos.ai.textToSpeech |

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 101
赞赏 0
下载 12266363
赞赏 1922
赞赏
京公网安备:11010802035340号