我对 Kotlin 还很陌生,最近一直在使用 Android TextToSpeech类。我以基本的方式让它工作,但现在我想尝试检测说话何时开始/停止。
据我了解,我需要使用 UtteranceProgressListener ,但我不太明白如何在 Kotlin 中进行设置。这是我进行设置的方法:
private fun setTextToSpeech() {
textToSpeech = TextToSpeech(this@PhraseListActivity, TextToSpeech.OnInitListener { status ->
if (status == TextToSpeech.SUCCESS) {
val languageToSpeak = Locale(intent.getStringExtra(DESIRED_LOCALE))
val result = textToSpeech.setLanguage(languageToSpeak)
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
toast("This language is not supported for text-to-speech")
} else {
languageCanBeSpoken = true
}
} else
Log.e("error", "Initilisation Failed!")
})
class speechListener : UtteranceProgressListener() {
override fun onDone(utteranceId: String?) {
toast("finished speaking")
}
override fun …
Run Code Online (Sandbox Code Playgroud)