2

我正在开发 android 应用程序,并且正在使用 TTS 引擎。应用程序应该在某个事件的持续时间内输出一条连续重复的消息。

我目前正在while(true)添加到队列中的语句中执行此操作,但后来认为这可能不是一个好主意,因为我认为 TTS.speak 方法不会阻塞,因此它会不断向 tts 引擎添加语音这可能不会被使用或可能导致内存问题或性能问题等问题。

有没有办法让程序等待文本到语音完成,一旦完成,它可以循环并再次重播消息等等。这是可能的还是我所做的事情有更好的解决方案。

下面是我到目前为止的代码

if (repitionOption.equals(SettingsManager.CALL_ANNOUNCE_CONTINUOUSLY))
{
    while (true)
    {
    textToSpeech.speak(ttsMessage, TextToSpeech.QUEUE_ADD, null);
    }
}

感谢您的任何帮助,您可以提供。

4

1 回答 1

3

如果您的条件为真,您可以实现onUtteranceCompleted并再次调用 speak。

于 2013-03-19T23:22:57.040 回答