zoukankan      html  css  js  c++  java
  • 自动朗读 TTS

    public class MainActivity extends Activity {

        TextToSpeech tts;
        EditText say;
        Button speech,record;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            tts=new TextToSpeech(this, new OnInitListener() {
                
                @Override
                public void onInit(int status) {
                    if(status==TextToSpeech.SUCCESS)
                    {
                        int result=tts.setLanguage(Locale.getDefault());
                        if(result!=TextToSpeech.LANG_COUNTRY_AVAILABLE&&result!=TextToSpeech.LANG_AVAILABLE)
                        {
                            Toast.makeText(MainActivity.this, "TTS暂时不支持这种语言的朗读", Toast.LENGTH_SHORT).show();
                        }
                    }
                }
            });
            findid();
        }

        private void findid() {
            // TODO Auto-generated method stub
            say=(EditText) findViewById(R.id.say);
            speech=(Button) findViewById(R.id.speech);
            record=(Button) findViewById(R.id.record);
            speech.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    tts.speak(say.getText().toString(), TextToSpeech.QUEUE_ADD, null);
                }
            });
            record.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    tts.synthesizeToFile(say.getText().toString(), null, "/mnt/sdcard/sound.wav");
                    Toast.makeText(MainActivity.this, "声音记录成功!", Toast.LENGTH_SHORT).show();
                }
            });
        }
        
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            if(tts!=null)
            {
                tts.shutdown();
            }
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }

    }

  • 相关阅读:
    ProviderManager
    C#.NET常见问题(FAQ)-如何把定义存放类实例的数组
    C#.NET常见问题(FAQ)-命名空间namespace如何理解
    C#.NET常见问题(FAQ)-索引器indexer有什么用
    C#.NET常见问题(FAQ)-构造器constructor有什么用
    C#.NET常见问题(FAQ)-public private protectd internal有什么区别
    C#.NET常见问题(FAQ)-override覆盖和virtual虚类如何理解
    C#.NET常见问题(FAQ)-如何使用右下角托盘图标notifyIcon
    C#.NET常见问题(FAQ)-如何使用变量访问控件属性
    C#.NET常见问题(FAQ)-如何使用变量动态添加控件
  • 原文地址:https://www.cnblogs.com/lk119/p/3349372.html
Copyright © 2011-2022 走看看