更新记录

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:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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 引擎

咨询、交流、学习

扫码关注回复 six

使用说明

一、使用 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>

插件问题扫上面二维码联系解决

包解决,包售后

隐私、权限声明

1. 本插件需要申请的系统权限列表:

1、获取系统播放音频的权限(使用的是:android.speech.tts.TextToSpeech 库。因为安卓底层自带的库,所以是不需要申请权限的)

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问