gpt4 book ai didi

android - 等到 TextToSpeech onInit() 被初始化

转载 作者:行者123 更新时间:2023-11-29 00:28:29 24 4
gpt4 key购买 nike

我正在开发一个简单的应用程序,它会在接到电话时说出联系人姓名或未知号码。我正在使用 broadcastReceiverServices 实现该应用程序。如果我在 emulator 上运行该应用程序并使用 DDMS 开始通话,并保存了 2 或 3 个联系人,则该应用程序运行良好,因为 onInit()tts.speak() 运行之前被调用。

现在,当我尝试在我的 Android 手机上运行相同的应用程序时,onInittts.speak() 之后被调用。根据我在寻找这个问题的答案时的理解,发生这种情况是由于 tts.speak() 没有等待调用 onInit

我在这个问题上找到的一个解决方案是 How to wait for TextToSpeech initialization on Android但这也没有用。

这个问题已经被问过很多次了,但我找不到有效的解决方案。此链接建议使用处理程序 http://davidcheney.wordpress.com/2010/11/16/multitasking-in-android/但作为新手,我不知道如何实现它。

据我所知,我必须等到 onInit 被调用后才能使用 tts.speak() 但我不知道该怎么做。

更新我试图在 onInit 之外调用 speak 函数,因为要说的数据来自其他地方,我不想在 中进行所有编码>onInit,这是行不通的。所以我更改了我的代码,并最终以某种方式设法在 onInit() 中运行 speak()。虽然代码现在正在运行,但必须有一种方法可以在 onInit 之外调用 speak()。所以我会等待更好的答案,否则将我的代码发布给面临同样问题的其他人。

最佳答案

您可以设置一个类成员标志 boolean mTtsInitialized 并在每次调用 speak 时检查此标志,或者将代码放在 onInit 中以获取要说出的数据

关于android - 等到 TextToSpeech onInit() 被初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17678909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com