У меня есть файл html, который я загружаю, включая все ресурсы, ресурсы и ccs, которые мне нужны. я могу отобразить его в веб-просмотре, используя: webView.loadUrl("file:///" + path)
Я также знаю, как использовать текст в речь, я реализую TextToSpeech.OnInitListener
, добавляю текст в речь ie в свой класс: private var tts: TextToSpeech? = null
затем я добавляю функцию init:
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun onInit(status: Int) {
if (status == TextToSpeech.SUCCESS) {
val result = tts!!.setLanguage(Locale.FRANCE)
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS","The Language specified is not supported!")
} else {
//buttonSpeak!!.isEnabled = true
}
} else {
Log.e("TTS", "Initilization Failed!")
}
}
Затем я получаю метод, который нужно вызвать, когда я хочу использовать свою текстовую речь:
private fun textToSpeech(){
tts = TextToSpeech(this.context, this)
tts!!.setSpeechRate(0.5f)
var text = Html.fromHtml("Bonjour tout le monde")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
tts!!.speak(text, TextToSpeech.QUEUE_FLUSH, null, "")
}
}
Это прекрасно работает, я продолжаю с одной стороны весь мой текст отображается в веб-просмотре, а с другой стороны, мой TTS говорит мой текст.
Проблема в том, что мой TTS хотел бы прочитать мой файл html вместо текста в жестком коде. Так есть ли способ напрямую передать файл в TTS? или каким-то образом получить html, а затем передать его в TTS?