当前位置: 首页 > news >正文

安卓屏播放语音失败,报错TextToSpeech: speak failed: not bound to TTS engine

最近碰到一个很棘手的问题,无缘无故,之前在Android9.0跑得好好的程序,升级安装系统到Android13后,就发现之前能放的语音,现在放不了了,真是头大,所以我摸索着尝试解决,且看我的解决过程。

一、事件起因

楼主准备在安卓屏上播放语音,使用的是文字转语音功能,起初是发现不播放,而且通过日志查看,初始化失败(报错:AndroidJavaException: java,lang,ClassNotFoundException: com,unity3d,player.UnityAndndroid)

jc = new AndroidJavaClass("com.unity3d.player.UnityAndAndroid");

在网上找了半天也没找到合适的方法,后来就根据日志指引,在打包的工程查看对应路径下是否有UnityAndndroid.class这个文件,发现果然没有,所以我果断丢了一个进去,再出一个apk,发现奇迹般的就可以了

二、speak failed问题

这个问题很多人都碰到过,但是并没有很全面的解决方案。我经过查找发现有以下思路可以协助解决。调用方式如下,功能是中文转语音,调用TTS底层接口实现的。

if (jc != null)
{jc.CallStatic("UnitySound", value);
}
else
{Debug.Log("SendSound jc is null!");
}

解决方法如下:

1.检查屏是否支持TTS引擎

检查TTS引擎是否安装并启用。如果不支持,需要下载一个安装apk进行

2.检查权限是否申请

找到AndroidManifest.xml文件添加权限许可

<uses-permission android:name="android.permission.INTERNET"/>

3.添加aidl请求queries节点配置

最后再出一个apk,验证后问题解决了。

相关文章:

  • 【C++】类和对象【中上】
  • 决策树相关案例
  • 常用的ADB命令分类汇总
  • 比较迭代次数的分布宽度和密度
  • JavaScript中主动抛出错误的方法
  • -信息革命-
  • 2025.4.23 JavaScript 随机抽人网页学习笔记
  • FFTW3.3.10库与QT结合的使用
  • Qt从零开始(1)了解
  • 进程与线程-----C语言经典题目(8)
  • 在使用docker创建容器运行报错no main manifest attribute, in app.jar
  • C++ TCP通信原理与实现
  • 2025年邵阳市工程技术研究中心申报流程、条件、奖补
  • AI中Token的理解与使用总结
  • 小集合 VS 大集合:MySQL 去重计数性能优化
  • 4月27日日记
  • fastapi【0基础学习之路(未学py版)】
  • 「Mac畅玩AIGC与多模态01」架构篇01 - 展示层到硬件层的架构总览
  • 函数式编程之 Optional
  • 秒杀压测计划 + Kafka 分区设计参考
  • 苏丹宣布与阿联酋断交
  • 上海黄浦区拟73.2654亿元协议出让余庆里7宗组合地块
  • 世界哮喘日|专家:哮喘无法根治,“临床治愈”已成治疗新目标
  • 山东滕州市醉驾交通事故肇事人员已被刑拘
  • 竞彩湃|巴萨客场淘汰国际米兰,巴黎双杀阿森纳
  • 中标多家学校采购项目的App查成绩需付费?涉事公司回应