Java Android Studio中无文本字段和按钮的文本到语音转换

Java Android Studio中无文本字段和按钮的文本到语音转换,java,android,text-to-speech,Java,Android,Text To Speech,所以,我想在Android Studio中创建一个文本到语音,而不使用textfield和按钮。例如,当我打开应用程序时,它会说“欢迎使用我的应用程序”,而没有文本字段或任何按钮。我该怎么做?我需要你的帮助 您可以执行以下操作: import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.speech.tts.TextToSpeech; import java.

所以,我想在Android Studio中创建一个文本到语音,而不使用textfield和按钮。例如,当我打开应用程序时,它会说“欢迎使用我的应用程序”,而没有文本字段或任何按钮。我该怎么做?我需要你的帮助

您可以执行以下操作:

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.speech.tts.TextToSpeech;

import java.util.Locale;

public class MainActivity extends Activity {

    TextToSpeech t1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        t1 = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                if (status != TextToSpeech.ERROR) {
                    t1.setLanguage(Locale.ENGLISH);
                }
            }
        });


        final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                t1.speak("welcome to my app", TextToSpeech.QUEUE_FLUSH, null);
            }
        }, 100);


    }

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

}

代码是不言自明的,我测试了它并获得了成功的结果。

只需将其添加到onCreate()中即可:


与其从文本字段向它提供字符串,不如传递一个字符串,然后在onViewCreated()中调用text-to-speech方法,看看我对TTS服务的回答:我认为最好将speak()代码放在onInit()方法中setLanguage之后/之后。您不能仅仅假设引擎需要100毫秒才能初始化。你不知道用户的设备上有什么语音引擎,有时谷歌引擎需要6000毫秒。。。所以你最好等到它真正初始化的时候再开口。嗨,先生。只是想问一下你给我的代码是不是Android Studio的?谢谢
myTTS = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                if (status != TextToSpeech.ERROR) {
                    // replace this Locale with whatever you want                    
                    Locale localeToUse = new Locale("en","US");
                    myTTS.setLanguage(localeToUse);
                    myTTS.speak("Hi, Welcome to my app!", TextToSpeech.QUEUE_FLUSH, null);
                }
            }
        });