更新记录
1.2(2026-07-06)
支持iOS
1.1(2024-04-07)
支持设置音调和语速
1.0(2024-04-01)
- 支持语音合成,文本转语音
- 支持震动(可自定义任意震动效果)
平台兼容性
| Android | Android CPU类型 | iOS |
|---|---|---|
| 适用版本区间:4.4 - 14.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | 适用版本区间:12 - 18 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
文字转语音(文字播报、语音合成)、震动提示、双端 Ba-TTS
简介
Ba-TTS 是一款 uniapp 语音合成(TTS)插件,支持文本转语音(无服务费),支持震动提示。(注意:建议先试用,再购买)。
- 支持语音合成,文本转语音
- 支持 Android、iOS 双端
- 支持震动(Android 可自定义震动规则;iOS 为系统单次振动)
支持定制,有建议和需要,请联系QQ:2579546054(如本地包、源码)
也可关注博客,实时更新最新插件:
文字转语音(文字播报、语音合成、免服务费)、震动提示 ba-tts-u-new(三端:安卓、iOS、Harmony)
声音提示、震动提示、语音播报 Ba-Beep(播放音频文件)
使用方法
在 script 中引入组件
const tts = uni.requireNativePlugin('Ba-TTS')
在 script 中调用
methods: {
speak() { // 播放声音
tts.speak({
text: "测试语音合成", // 文本;注意:数字单读(如叫号1001)可用空格隔开,如"1 0 0 1"
pitch: 1.0, // 音调,值越大声音越尖(女生),值越小则偏男声,默认 1.0
speed: 1.0 // 语速倍率,默认 1.0 正常语速
},
(res) => {
// speak 支持多次回调,需区分调用结果与播放状态
if (res.action) {
console.log('播放状态', res.action, res.status)
} else {
console.log('调用结果', res.ok, res.msg)
}
});
},
stopSpeak() { // 停止播放
tts.stopSpeak((res) => {
console.log(res)
});
},
playVibrate() { // 震动(Android 可传参数,iOS 忽略参数)
// #ifdef APP-PLUS-ANDROID
let params = {
repeat: 0, // 重复 -1:不重复 0:循环 >1:从指定索引开始重复
pattern: [500, 200, 500, 100] // 震动规则,见下方说明
};
tts.playVibrate(params, (res) => {
console.log(res)
});
// #endif
// #ifdef APP-PLUS-IOS
tts.playVibrate((res) => {
console.log(res)
});
// #endif
},
cancelVibrate() { // 取消震动
tts.cancelVibrate((res) => {
console.log(res)
});
},
}
方法清单
| 名称 | 说明 | 平台 |
|---|---|---|
| speak | 语音合成并播放 | Android / iOS |
| stopSpeak | 停止播放 | Android / iOS |
| playVibrate | 震动 | Android / iOS |
| cancelVibrate | 取消震动 | Android / iOS |
speak 方法参数
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| text | String | - | 必填,要朗读的文本 |
| pitch | Number | 1.0 | 音调,值越大声音越尖(女生),值越小则偏男声 |
| speed | Number | 1.0 | 语速倍率,1.0 为正常语速 |
数字朗读技巧:连续数字(如叫号 1001)建议用空格隔开,如 "1 0 0 1",避免被读成「一千零一」。
speak 回调说明
speak 的 callback 支持多次触发(keepAlive),需根据返回字段区分类型:
| 回调类型 | 字段 | 说明 |
|---|---|---|
| 调用结果 | { ok, msg } |
首次调用返回,ok 为 true/false |
| 播放状态 | { action, status } |
播放过程中触发 |
Android 播放状态:
| action | status | 说明 |
|---|---|---|
| statusChange | utteranceId | 播放开始/完成/出错时触发 |
iOS 播放状态:
| action | status | 说明 |
|---|---|---|
| onStart | start | 开始播放 |
| onDone | done | 播放完成 |
| onError | canceled | 播放被取消(如调用 stopSpeak) |
震动 playVibrate 方法参数(仅 Android)
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| repeat | Number | 0 | 重复 -1:表示不重复 0:循环的震动 >1:表示从哪里开始重复 |
| pattern | Array | [] | 震动规则,如 [500,100,500,100] |
震动规则:传递一个整型数组作为关闭和开启震动的持续时间,以毫秒为单位。第一个值表示等待震动开启的毫秒数,下一个值表示保持震动的毫秒数,这个序列值交替表示震动关闭和开启的毫秒数。
如:pattern 值为 [500,100,500,100],先等待 500 毫秒,然后震动 100 毫秒,然后再等待 500 毫秒,然后再震动 100 毫秒,如此按规则依次进行。
平台差异
| 能力 | Android | iOS |
|---|---|---|
| TTS 引擎 | 系统 TextToSpeech | AVSpeechSynthesizer(zh-CN) |
| speak 参数 pitch / speed | ✓ | ✓ |
| speak 多次状态回调 | ✓ | ✓ |
| playVibrate 自定义 pattern / repeat | ✓ | ✗,仅系统单次振动(约 500ms) |
| cancelVibrate 真正取消 | ✓ | ✗,系统振动不可取消,接口返回 success |

收藏人数:
购买(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 14461
赞赏 6
下载 13397
赞赏 1
赞赏
京公网安备:11010802035340号