Android中內建的TTSVoice Messaging Service,現在不能讀取漢字,下面是我用來讀取一段英文的代碼,希望對大家有協助:
package com.yu;import java.util.Locale;import android.app.Activity;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.widget.Button;import android.widget.EditText;public class TTSTestActivity extends Activity {Button button;EditText edittext;TextToSpeech mSpeech; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); edittext=(EditText)findViewById(R.id.edittext); button=(Button)findViewById(R.id.button); button.setEnabled(false); mSpeech = new TextToSpeech(this, new OnInitListener() { @Override public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { int result = mSpeech.setLanguage(Locale.ENGLISH);//設定只能朗讀英文 if (result == TextToSpeech.LANG_MISSING_DATA|| result == TextToSpeech.LANG_NOT_SUPPORTED) {//要是結果沒值,就在後台列印出來 Log.e("lanageTag", "not use"); } else {//類比機在啟動時朗讀下面的英文 button.setEnabled(true); mSpeech.speak("Hello World,Hello Android", TextToSpeech.QUEUE_FLUSH, null); } } } }); button.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) {//讀取文字框裡輸入的英文 mSpeech.speak(edittext.getText().toString(),TextToSpeech.QUEUE_FLUSH, null); } }); }@Overrideprotected void onDestroy() {super.onDestroy();if (mSpeech != null) { mSpeech.stop(); mSpeech.shutdown(); }}}