Android TextToSpeech-语音功能不起作用。不推荐使用Int

时间:2019-07-17 15:15:47

标签: android kotlin text-to-speech

我正在尝试在Android应用程序中实现TextToSpeech:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            TTS.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null, null)
        }
        else {
            TTS.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null)
        }

我已经为Lollipop或更老的情况提供了if子句,但是出现以下错误:

speak(String!, Int, HashMap<String!, String!>!: Int' is deprecated. Deprecated in Java

我不知道应该用什么代替TextToSpeech.QUEUE_FLUSH。

2 个答案:

答案 0 :(得分:0)

您需要传递Bundle而不是HashMap

val bundle = Bundle()
bundle.putString(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, id)  //id is of string type, supply your own preferred ID here.

speechInstance.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, bundle, uniqueID) //same id

如果您查看这些文档,就会明白为什么会有问题。

enter image description here

您使用的是 last ,在文档中说它已被弃用,因此您需要使用第一个.speak()方法。更多info

答案 1 :(得分:0)

这只是IDE中不应该出现的错误警告。由于某种原因,就检查API和应用正确的方法签名而言,它并没有正确地执行代码。