我已将文本语音转换功能集成到android应用程序中,该应用程序将显示的信息转换为语音(信息从Firebase数据库接收并显示在应用程序中)我创建了两个菜单按钮,用于启用和禁用文本的使用语音转换。为启用声音而创建的按钮可以正常工作,但是一旦添加了禁用代码,则tts似乎根本不起作用。它不会输出任何内容。但是,如果删除了禁用代码,那么一切似乎都可以正常工作。 在此先感谢!
enter code here //xml menu file
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/volume"
android:icon="@drawable/ic_volume_up_black_24dp"
android:title="volume"
app:showAsAction="ifRoom">
</item>
<item
android:icon="@drawable/ic_volume_off_black_24dp"
android:title="mute"
android:id="@+id/mute"
app:showAsAction="ifRoom">
</item>
</menu>
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu2,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.volume:
Toast.makeText(this, "Voice enabled",
Toast.LENGTH_SHORT).show();
click();
case R.id.mute:
Toast.makeText(this, "Voice disabled",
Toast.LENGTH_SHORT).show();
pause();
}
return super.onOptionsItemSelected(item);
}
public void pause(){
if(mTTS!=null && mTTS.isSpeaking()){
mTTS.stop();
}
}*/
public void click(){
TextView tx1 = (TextView)findViewById(R.id.textView2);
String words = tx1.getText().toString();
speakwords(words);
}
private void speakwords(String speech){
mTTS.setPitch(1.3f);
mTTS.setSpeechRate(0.8f);
mTTS.speak(speech,TextToSpeech.QUEUE_FLUSH,null);
}
@Override
protected void onDestroy() {
super.onDestroy();
beaconManager.unbind(this);
if(mTTS!=null){
mTTS.stop();
mTTS.shutdown();
}
}