更新记录
1.0.0(2023-11-08)
1、修复App返回,再次进入App无法播报的Bug。 2、新增销毁资源的接口,避免内存泄露。 3、优化TTS资源控制。提升性能,避免内存泄露影响应用的性能。 4、优化其它一些小细节
0.2.0(2023-04-21)
1、修复调用 stop(callback) 方法后,无法再次播放的Bug。 2、优化 TTS 释放资源 流程,节约一点性能
0.1.1(2022-03-25)
第一版
语音播报-安卓端原生插件-SixUniTts
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 11.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
原生安卓端语音播报/朗读插件,支持文字转语音,支持 socket 下发文字到客户端语音播报/朗读
介绍
使用安卓 底层的 TextToSpeech (tts) 库,在加上安卓手机底层的语音引擎实现将文字转语音播放(朗读)出来的功能。
🚀 原生安卓 TextToSpeech 功能
: SmallSix-SixUniTts
提供了完全原生的 TextToSpeech 支持,让您的应用可以轻松播报/朗读文本,提供更丰富的用户互动体验。
🌍 平台兼容性
: 无需重新编写代码,SmallSix-SixUniTts
完美兼容 uni-app,完美兼容各家安卓手机。完美兼容使用安卓系统的大屏。
🎨 自定义选项
: 调整语速、音量和语音,以满足您的应用需求。还可以自行下载语音包,让您的语音播放更具特色。
🛠 简单易用
: SmallSix-SixUniTts
提供易于使用的 API,简化了 TextToSpeech 功能的集成,即使对原生开发不熟悉的开发者也能轻松上手。只需简单的四步就能轻松的让您的应用实现语音播报/朗读的功能
📈 高性能
:可以自主控制销毁资源,防止内存泄露,提搞应用的性能,避免浪费系统的资源
👍 很多安卓机型、大屏安卓机、定制安卓机,用户反馈效果很好,可以放心使用
扫码关注回复 six 咨询插件相关问题
获取 TTS 引擎
咨询、交流、学习
使用说明
一、使用 HBuilder X 将该插件导入到自己的项目中。
二、在项目引用该插件
const SixUniTts = uni.requireNativePlugin("SmallSix-SixUniTts")
三、初始化
export default {
// 在 mounted 里面 调用 initSixUniTts()方法进行 初始化
mounted () {
SixUniTts.initSixUniTts()
}
}
四、文字转语音播放
SixUniTts.startSpeech({ speechText: '小六测试播放' })
接口说明
接口名称 | 接口说明 | 参数 | 参数说明 | 默认值 | 回调 | 版本 | 备注 |
---|---|---|---|---|---|---|---|
initSixUniTts | 初始化语音引擎TTS | - | - | - | callback | - | 调用播放接口前必须初始化 |
setSpeechRate | 设置音调 | { pitch: '1.0f' } | 可以设置男声女声,不同的语音引擎效果会不一样 | 1.0f | callback | - | - |
setSpeechRate | 设置语速 | { rate: '0.8f' } | 不同的语音引擎效果会不一样 | 0.8f | callback | - | |
startSpeech | 开始播放 | { speechText: '小六测试播放' } | 需要播放/朗读的文字 | - | callback | - | - |
stop | 停止播放 | - | - | - | callback | - | - |
shutdown | 释放资源 | - | - | - | callback | - | - |
destroy | 销毁资源 | - | - | - | callback | 1.0.0 | 当app退出时,需要调用该方法,释放资源。防止内存泄露出现不可避免的Bug |
接口调用示例
// 引入插件
const SixUniTts = uni.requireNativePlugin("SmallSix-SixUniTts")
// 初始化
SixUniTts.initSixUniTts(res => {
uni.showToast({
title: JSON.stringify(res),
duration: 2000
})
})
// 设置音调
SixUniTts.setPitch({ pitch: '1.0f' }, callback => {
console.log(callback)
})
// 设置语速
SixUniTts.setSpeechRate({ rate: '0.8f' }, callback => {
console.log(callback)
})
// 开始播放
SixUniTts.startSpeech({
speechText: 'yxx是世界上最漂亮女孩'
})
// 停止播放
SixUniTts.stop()
// 释放资源
SixUniTts.shutdown()
// 销毁资源
SixUniTts.destroy()
callback 说明:
callback 为回调函数。返回一个Json 对象,格式如下:
{
code: 0,
msg: '播放成功'
}
code: 调用接口是否成功?0 => 成功,1 => 失败
msg: 状态说明
完整示例:
<template>
<view class="content">
<image class="logo" src="/static/logo.png"></image>
<view class="text-area">
<text class="title">{{title}}</text>
</view>
<view class="btn" @click="six">测试按钮</view>
</view>
</template>
<script>
const SixUniTts = uni.requireNativePlugin("SixUniTts")
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {
},
mounted () {
// 初始化
SixUniTts.initSixUniTts(res => {
uni.showToast({
title: JSON.stringify(res),
duration: 2000
})
})
},
methods: {
six () {
uni.showToast({
title: '进来了111',
duration: 2000
})
SixUniTts.startSpeech({
speechText: 'yxx是世界上最漂亮女孩'
})
}
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
.btn {
width: 200rpx;
height: 80rpx;
line-height: 80rpx;
background: #F0AD4E;
text-align: center;
color: #FFFFFF;
border-radius: 20rpx;
margin-top: 30rpx;
}
</style>