Andorid自动朗读TTS使用

TextToSpeech有两个重要的方法:

//  执行朗读的方法

speak(CharSequence text,int queueMode,Bundle params,String utteranceld);

//  将朗读的的声音记录成音频文件

synthesizeToFile(CharSequence text,Bundle params,File file,String utteranceId);

queueMode用于指定发音队列模式,有两个参数:

TextToSpeech.QUEUE_FLUSH:该模式下在有新任务时候会清除当前语音任务,执行新的语音任务

TextToSpeech.QUEUE_ADD:该模式下会把新的语音任务放到语音任务之后,等前面的语音任务执行完了才会执行新的语音任务


TextToSpeech使用案例代码如下:

public class MainActivity extends AppCompatActivity {
    EditText content;
    Button speekBtn,recordBtn;
    TextToSpeech tts;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        content = (EditText) findViewById(R.id.editText);
        speekBtn = (Button) findViewById(R.id.speek);
        recordBtn = (Button) findViewById(R.id.record);

        //  初始化TextToSpeech对象
        tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                //  若装载TTS引擎成功
                if(status == TextToSpeech.SUCCESS){
                    //  设置中文朗读
                    int result = tts.setLanguage(Locale.CHINA);
                    //  若不支持所设置的语言
                    if(result != TextToSpeech.LANG_AVAILABLE &&
                            result != TextToSpeech.LANG_COUNTRY_AVAILABLE){
                        Toast.makeText(MainActivity.this, "TTS暂不支持该语言的朗读",
                                Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
        speekBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text = content.getText().toString();
                //  执行朗读
                tts.speak(text,TextToSpeech.QUEUE_ADD,null,"speech");

            }
        });
        recordBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text = content.getText().toString();
                //  将文本对应的音频文件保存到指定文件
                tts.synthesizeToFile(text,null,new File("/mnt/sdcard/sound.wav"),"record");
                Toast.makeText(MainActivity.this, "声音记录成功", Toast.LENGTH_SHORT).show();
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(tts != null){
            //  关闭tts对象
            tts.shutdown();
        }
    }
}


你可能感兴趣的:(android)