当使用 Android Studio 中的 TTS 功能时,若调用 speak() 方法无法读取输入的文本,则需检查以下几个方面:
示例代码:
textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { if(status == TextToSpeech.SUCCESS){ int result = textToSpeech.setLanguage(Locale.ENGLISH); if(result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED){ Log.e(TAG, "Language not supported"); }else{ Log.i(TAG, "TTS Initialized"); } }else{ Log.e(TAG, "Initialization failed"); } } });
示例代码:
String text = "Hello world"; textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null);
其中 text 参数为要阅读的文本内容,QUEUE_FLUSH 参数表示删除队列中的所有挂起的任务并立即读取新的任务,而 null 参数表示指定回调监听器为 null。
示例代码:
@Override public void onDestroy() { if (textToSpeech != null) { textToSpeech.stop(); textToSpeech.shutdown(); } super.onDestroy(); }
其中 onDestroy() 方法用于释放 TTS 对象占用的资源,若不加以处理则会导致内存泄露等问题。