android tts使用

来源:互联网 发布:岛国中文字幕下载软件 编辑:程序博客网 时间:2024/06/01 17:33
package com.example.speack;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends Activity implements OnInitListener {
      private int MY_DATA_CHECK_CODE = 0;
       private TextToSpeech tts;
       private EditText inputText;
       private Button speakButton;
    @Override
    public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
    inputText = (EditText) findViewById(R.id.editText1);
    speakButton = (Button) findViewById(R.id.button1);
    speakButton.setOnClickListener(new OnClickListener() {            
     @Override
     public void onClick(View v) {
         String text = inputText.getText().toString();
         if (text!=null && text.length()>0) {
      Toast.makeText(MainActivity.this, "Saying: " + text, Toast.LENGTH_LONG).show();
     tts.speak(text, TextToSpeech.QUEUE_ADD, null);
         }
     }
        });
    Intent checkIntent = new Intent();
        checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
        startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
      }
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          if (requestCode == MY_DATA_CHECK_CODE) {
              if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
                  // success, create the TTS instance
                  tts = new TextToSpeech(this, this);
              } 
              else {
                  // missing data, install it
                  Intent installIntent = new Intent();
                 installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
                  startActivity(installIntent);
              }
          }
      }
      @Override
      public void onInit(int status) {        
          if (status == TextToSpeech.SUCCESS) {
              Toast.makeText(MainActivity.this, 
                     "Text-To-Speech engine is initialized", Toast.LENGTH_LONG).show();
          }
         else if (status == TextToSpeech.ERROR) {
            Toast.makeText(MainActivity.this, 
                    "Error occurred while initializing Text-To-Speech engine", Toast.LENGTH_LONG).show();
          }
      }
  }
0 0