Android文字转语音停止问题

时间:2019-04-20 11:25:46

标签: android

我已将文本语音转换功能集成到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();

      }
      }

0 个答案:

没有答案