android 多个Activity语音播报
隔壁班的女孩 发布于2020-11 浏览:1337 回复:3
0
收藏
最后编辑于2022-09

当前有两个页面,

打开页面1初始化initTts,一切正常。

跳转到页面2初始化initTts,一切正常。

然后finish页面2返回到页面1,播放一条语音正常,但是页面1已经无法接收到tts回调。

打印了一下Log查看原来回调在页面2,看了一下初始化代码:

SpeechSynthesizer  mSpeechSynthesizer  =SpeechSynthesizer.getInstance();

mSpeechSynthesizer.setContext(context);

mSpeechSynthesizer.setSpeechSynthesizerListener(...);

原来每次初始化都会setContext,只是我关闭页面2了怎么重新让页面1能接收到回调?在onResume()中初始化?

收藏
点赞
0
个赞
共3条回复 最后由qq928243596回复于2022-09
#4用户已被禁言回复于2020-11
#3 隔壁班的女孩回复
不是报错,只是想问一下怎么初始化好一点。 现在我每个页面都有个语音播报,我目前只能在每个activity的onResume()方法初始化了,不然SpeechSynthesizerListener回调只能最后一个初始化的activity能接收到。 而且我关闭activity的时候不敢释放,因为释放之后返回前一个activity发现不能播报了。 Demo中是单个页面用到语音播报,如果多个页面需要用那要怎么管理呢?
展开

这个属于安卓逻辑了,可以看看有没有大神回复你,或者查下相关论坛。

0
#3隔壁班的女孩回复于2020-11

不是报错,只是想问一下怎么初始化好一点。

现在我每个页面都有个语音播报,我目前只能在每个activity的onResume()方法初始化了,不然SpeechSynthesizerListener回调只能最后一个初始化的activity能接收到。

而且我关闭activity的时候不敢释放,因为释放之后返回前一个activity发现不能播报了。

Demo中是单个页面用到语音播报,如果多个页面需要用那要怎么管理呢?

0
#2用户已被禁言回复于2020-11

不明白你的页面1和2是什么意思,是你自己的逻辑吗?百度语音合成SDK是否有什么问题呢?可以贴下具体报错和版本

0
TOP
切换版块