更新记录

1.0(2025-07-15) 下载此版本

首次上传(其实这个是android 原生插件由于uniapp官方说不兼容 uniappx不给发布了,所以发布成这个类型)


平台兼容性

uni-app(4.66)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - 5.0 - 4.2以下
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

1.引入插件

图片中webview为示例项目

1.新建一个nativeplugins文件夹,图片中的文件结构放入插件

screenshot_2025-11-27_15-45-05

2.配置package.json内容

{
    "name": "TTSSpeechModule",
      "id": "TTSSpeechModule",
      "version": "1.0.0",
      "description": "Text to Speech Plugin for UniApp",
      "_dp_type": "nativeplugin",
      "_dp_nativeplugin": {
        "android": {
          "plugins": [
            {
              "type": "module",
              "name": "TTSSpeechModule",
              "class": "com.uniplugin.tts.TTSSpeechModule"
            }
          ],
          "integrateType": "aar",
          "minSdkVersion": 21,
          "permissions": [
            "android.permission.INTERNET"
          ]
        }
      }
}

3.导入插件

点击manifest.json文件,点击安卓/ios原生插件配置,点击右侧选择本地插件选择插件

image-20251127160547508

2.插件使用

<template>
    <view class="demo">
        <button @click="play"></botton>
    </view>
</template>
<script lang="ts" setup>
import { onMounted } from 'vue' 
const ttsModule = uni.requireNativePlugin("TTSSpeechModule");
//初始化

function initTTS() {
 ttsModule.initTTS((res:{success: boolean, message: string})=> {
     if(res.success) {
        console.log(res.message)
     }
    });
 }

//播报
 function speak(text: string) {
    ttsModule.speak(text,(res:{success: boolean, message: string})=> {
        if(res.success) {
            console.log(res.message)
         }
     });
 }

//停止播报
 function stop() {
    ttsModule.stop((res)=> {
        if(res.success) {
            console.log(res.message)
         }
     });
 }

//数字转汉字的方法(主要防止例如车牌苏A12345,读成苏A一万二千三百四十五,如无这种情况可不用转换)
 function numberToChinese(str: string) {
    const chineseNums = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
    return str.replace(/\d/g, (match) => chineseNums[parseInt(match)]);
 }
 function play() {
    speak('播报成功‘)
 }
 onMounted(()=>{
    initTTS()
})
</script>

3.说明

这个插件相对比较简陋,但是基本功能应该没问题,希望能给需要的人提供帮助。

隐私、权限声明

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

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

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

许可协议

MIT协议