android开发语音播报

版权声明:本文出自马云飞的博客,转载必须注明出处。 https://blog.csdn.net/sw950729/article/details/52069582

转载请注明出处:http://blog.csdn.net/sw950729/article/details/52069582
本文出自:马云飞的博客
上次也说了最近一直在整理东西以及封装东西。然后今天整理就发现之前写了个语音播报的demo。然后就趁关机前写一下,东西也不多,就几行代码的事,2333333.
xml我就不写了,一个edittext和一个button。点击button读出edittext的内容。
实现OnInitListener接口,java代码如下:

public void inital() {
        // 传入context及onInitListener
        tts = new TextToSpeech(this, this);
        editText = (EditText) findViewById(R.id.et_text);
        button = (Button) findViewById(R.id.btn);
        button.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规
                tts.setPitch(1.0f);
                // 设置语速
                tts.setSpeechRate(0.3f);
                if (editText.getText().length() >= 1) {
                    tts.speak(editText.getText().toString(),
                            TextToSpeech.QUEUE_FLUSH, null);
                } else {
                    tts.speak("Nothing to say", TextToSpeech.QUEUE_FLUSH, null);
                }
            }
        });
    }

    public void onInit(int status) {
        if (status == tts.SUCCESS) {
            // Toast.makeText(MainActivity.this,"成功输出语音",
            // Toast.LENGTH_SHORT).show();
            // Locale loc1=new Locale("us");
            // Locale loc2=new Locale("china");
            int result1 = tts.setLanguage(Locale.US);
            int result2 = tts.setLanguage(Locale.CHINESE);
            if (result1 == TextToSpeech.LANG_MISSING_DATA
                    || result1 == TextToSpeech.LANG_NOT_SUPPORTED
                    || result2 == TextToSpeech.LANG_MISSING_DATA
                    || result2 == TextToSpeech.LANG_NOT_SUPPORTED)

            {
                Toast.makeText(this, "数据丢失或不支持", Toast.LENGTH_SHORT).show();
            }
        }
    }

记得在ondestory里面把tts给停止掉:

protected void onDestory() {
        if (tts != null) {
            tts.stop();
            tts.shutdown();
        }
        super.onStop();
    }

我这边设置可读的内容只有中英文,大家可以自己修改,啊哈哈哈~~~
好了。今天就介绍这点把,我的android群:232748032

展开阅读全文

没有更多推荐了,返回首页