//语音播报 private TextToSpeech textToSpeech = null;
//初始化
textToSpeech = new TextToSpeech(this, status -> { if (status == textToSpeech.SUCCESS) { textToSpeech.setLanguage(Locale.CHINESE); textToSpeech.setPitch(1.0f);//方法用来控制音调 值越大声音越尖(女生),值越小则变成男声,1.0是常规 textToSpeech.setSpeechRate(1.0f);//用来控制语速 //判断是否支持下面两种语言 int result1 = textToSpeech.setLanguage(Locale.US); int result2 = textToSpeech.setLanguage(Locale. SIMPLIFIED_CHINESE); boolean a = (result1 == TextToSpeech.LANG_MISSING_DATA || result1 == TextToSpeech.LANG_NOT_SUPPORTED); boolean b = (result2 == TextToSpeech.LANG_MISSING_DATA || result2 == TextToSpeech.LANG_NOT_SUPPORTED); startAuto(VideoName); LogUtils.e("flage", "US支持否?--》" + a + "\nzh-CN支持否》--》" + b); } else { ToastUtils.showShort("数据丢失或不支持"); } });
//开始播放 private void startAuto(String data) { if (textToSpeech != null && !textToSpeech.isSpeaking()) { textToSpeech.speak(data,//输入中文,若不支持的设备则不会读出来 TextToSpeech.QUEUE_FLUSH, null); } }
//清除注销 @Override protected void onStop() { super.onStop(); textToSpeech.stop(); // 不管是否正在朗读TTS都被打断 textToSpeech.shutdown(); // 关闭,释放资源 }