您的位置:首页 > 移动开发 > Android开发

android开发语音播报

2016-11-01 10:48 330 查看
转载请注明出处: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();

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: