我正在尝试在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。
答案 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
如果您查看这些文档,就会明白为什么会有问题。
您使用的是 last ,在文档中说它已被弃用,因此您需要使用第一个.speak()
方法。更多info
答案 1 :(得分:0)
这只是IDE中不应该出现的错误警告。由于某种原因,就检查API和应用正确的方法签名而言,它并没有正确地执行代码。