Andorid自动朗读TTS使用

来源:互联网 发布:winpe nvme 网络 编辑:程序博客网 时间:2024/06/03 02:24

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();        }    }}


0 0
原创粉丝点击