当前位置: 首页 > 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 分区设计参考
  • “五一”假期倒计时,节前错峰出游机票降价四成
  • 文化润疆|让新疆青少年成为“小小博物家”
  • 最近这75年,谁建造了上海?
  • 四川甘孜州白玉县发生4.9级地震,震源深度10千米
  • ​王毅会见塔吉克斯坦外长穆赫里丁
  • 世联行:2024年营业收入下降27%,核心目标为“全面消除亏损公司和亏损项目”