当前位置: 首页 > 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,验证后问题解决了。

http://www.xdnf.cn/news/178705.html

相关文章:

  • risc-V学习日记(4):RV32I指令集
  • 开关电源实战(六)ADDC反激电源
  • 说一下Drop与delete区别
  • 在java中实现protobuf自定义协议
  • 通过ThreadLocal存储登录用户信息
  • LeetCode每日一题4.27
  • 【HPC存储性能测试】01-OpenMPI部署
  • 深入理解指针(5)
  • 【Leetcode 每日一题】3392. 统计符合条件长度为 3 的子数组数目
  • lobechat调用ollama模型,服务连接失败
  • UE5 NDisplay 单主机打包运行
  • SaaS方兴未艾,快速稳定的访问与全面的安全防护成关键
  • 典籍查询界面增加我的收藏查询功能
  • AI 数据中心 vs 传统数据中心:从硬件架构到网络设计的全面进化
  • 0基础 | Proteus | 中断 | 点阵
  • keil 中优化等级的bug
  • 泰迪杯实战案例超深度解析:旅游景点游客流量预测与资源优化
  • Zabbix
  • 测试基础笔记第十四天
  • Java基础——排序算法
  • 底层源码和具体测试解析HotSpot JVM的notify唤醒有序性(5000字详解)
  • 优化无头浏览器流量:使用Puppeteer进行高效数据抓取的成本降低策略
  • PHP实现 Apple ID 登录的服务端验证指南
  • 现代Python打包工具链
  • Redis的阻塞
  • AI赋能智能对讲机:技术融合与行业变革的深度实践
  • 【计算机网络性能优化】从基础理论到实战调优
  • 97A6-ASEMI无人机专用功率器件97A6
  • (25)VTK C++开发示例 --- 将点坐标写入.xyz文件
  • Java基础 — 数组