Java 在android中启动新活动时将文本转换为语音

Java 在android中启动新活动时将文本转换为语音,java,android,android-studio,google-text-to-speech,Java,Android,Android Studio,Google Text To Speech,我想在安卓系统中使用文本到语音,不用点击按钮就可以阅读文本字段。我真正想要的是,当启动文本到语音转换器时,在文本字段上显示文本,有人能帮我吗?在使用此代码时出现错误,我想替换这行代码“t1.speak(toSpeak,TextToSpeech.QUEUE_FLUSH,null);”请帮助 您可以使用这个,这里有一些关于文本到语音转换的有用信息 @Override protected void onCreate(Bundle savedInstanceState) { su

我想在安卓系统中使用文本到语音,不用点击按钮就可以阅读文本字段。我真正想要的是,当启动文本到语音转换器时,在文本字段上显示文本,有人能帮我吗?在使用此代码时出现错误,我想替换这行代码“t1.speak(toSpeak,TextToSpeech.QUEUE_FLUSH,null);”请帮助

您可以使用这个,这里有一些关于文本到语音转换的有用信息

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image_preview);
        touch_color = (TextView) findViewById(R.id.touch_color);


        picTaken = (ImageView) findViewById(R.id.picTaken);

      //  bitmap = fixRotation(MainActivity.IMG_FILE);
        //picTaken.setImageBitmap(bitmap);

        String toSpeak = touch_color.getText().toString();
        t1.speak(toSpeak, TextToSpeech.QUEUE_ADD, null);


        t1 = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                if (status != TextToSpeech.ERROR) {
                    t1.setLanguage(Locale.US);
                    t1.setLanguage(Locale.UK);

                }

            }
        });

    }

    public void onPause() {
        if (t1 != null) {
            t1.stop();
            t1.shutdown();
        }
        super.onPause();
    }

 Run c

您可以使用下面的代码段来实现文本到语音转换器

  private void promptSpeechInput() {
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
            RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
            getString(R.string.speech_prompt));
    try {
        startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
    } catch (ActivityNotFoundException a) {
        Toast.makeText(getApplicationContext(),
                getString(R.string.speech_not_supported),
                Toast.LENGTH_SHORT).show();
    }
}

看这里如何提问:参考这里<代码>运行c??那是什么?!您面临的问题是什么?t1.讲话(toSpeak,TextToSpeech.QUEUE\u FLUSH,null);我必须更改这一行,因为我没有任何队列,我的条目也没有更改
 public class MainActivity extends Activity {
 TextToSpeech t1;
 EditText ed1;     
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  ed1=(EditText)findViewById(R.id.editText);      
  t1=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
     @Override
     public void onInit(int status) {
        if(status != TextToSpeech.ERROR) {
           t1.setLanguage(Locale.UK);
        }
     }
  });


  String toSpeak = ed1.getText().toString();
  Toast.makeText(getApplicationContext(), toSpeak,Toast.LENGTH_SHORT).show();
  t1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);

}

public void onPause(){
  if(t1 !=null){
     t1.stop();
     t1.shutdown();
  }
  super.onPause();
}
}