黑马程序员技术交流社区

标题: Android 上的一个简单的 TTS 示例 [打印本页]

作者: y1787257661    时间: 2015-1-7 03:26
标题: Android 上的一个简单的 TTS 示例
  1. public class TtsActivity extends Activity implements OnInitListener {
  2.      
  3.     private int MY_DATA_CHECK_CODE = 0;
  4.      
  5.     private TextToSpeech tts;
  6.      
  7.     private EditText inputText;
  8.     private Button speakButton;
  9.      
  10. @Override
  11. public void onCreate(Bundle savedInstanceState) {
  12.      
  13.   super.onCreate(savedInstanceState);
  14.   setContentView(R.layout.main);
  15.    
  16.   inputText = (EditText) findViewById(R.id.input_text);
  17.   speakButton = (Button) findViewById(R.id.speak_button);
  18.    
  19.   speakButton.setOnClickListener(new OnClickListener() {            
  20.    @Override
  21.    public void onClick(View v) {
  22.        String text = inputText.getText().toString();
  23.        if (text!=null && text.length()>0) {
  24.     Toast.makeText(TtsActivity.this, "Saying: " + text, Toast.LENGTH_LONG).show();
  25.     tts.speak(text, TextToSpeech.QUEUE_ADD, null);
  26.        }
  27.    }
  28.       });
  29.    
  30.   Intent checkIntent = new Intent();
  31.       checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
  32.       startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
  33.          
  34.     }
  35. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  36.         if (requestCode == MY_DATA_CHECK_CODE) {
  37.             if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
  38.                 // success, create the TTS instance
  39.                 tts = new TextToSpeech(this, this);
  40.             }
  41.             else {
  42.                 // missing data, install it
  43.                 Intent installIntent = new Intent();
  44.                 installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
  45.                 startActivity(installIntent);
  46.             }
  47.         }

  48.     }

  49.     @Override
  50.     public void onInit(int status) {        
  51.         if (status == TextToSpeech.SUCCESS) {
  52.             Toast.makeText(TtsActivity.this,
  53.                     "Text-To-Speech engine is initialized", Toast.LENGTH_LONG).show();
  54.         }
  55.         else if (status == TextToSpeech.ERROR) {
  56.             Toast.makeText(TtsActivity.this,
  57.                     "Error occurred while initializing Text-To-Speech engine", Toast.LENGTH_LONG).show();
  58.         }
  59.     }
  60.      
  61. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2