text-to-speech発音

2060 ワード

// 

[b]public class SpeakingActivity extends Activity {
	public static String tag = "speakingactivity debut";
	private EditText et;
	private Button bt;
	private TextToSpeech tts;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.speak);
		tts = new TextToSpeech(this, ttsInitListener);
		et = (EditText) findViewById(R.id.et);
		bt = (Button) findViewById(R.id.btOne);
		bt.setText(R.string.bt);
		bt.setOnClickListener(new MyListNer());
	}

	class MyListNer implements OnClickListener {

		public void onClick(View v) {
			if (et.getText().length() > 0) {
				//  :D 
				tts.speak(et.getText().toString(), TextToSpeech.QUEUE_FLUSH,
						null);
			} else {
                // 
				tts.speak("Nothing to say", TextToSpeech.QUEUE_FLUSH, null);
			}
		}

	}

	private TextToSpeech.OnInitListener ttsInitListener = new TextToSpeech.OnInitListener() {

		public void onInit(int status) {
			//  
			Locale loc = new Locale("us", "", "");
			// 
			if (tts.isLanguageAvailable(loc) == TextToSpeech.LANG_AVAILABLE) {
				tts.setLanguage(loc);
			}
			tts
					.setOnUtteranceCompletedListener(ttsOnUtteranceCompletedListener);
			Log.i(tag, "TextToSpeech.OnInitListener");

		}
	};

	private TextToSpeech.OnUtteranceCompletedListener ttsOnUtteranceCompletedListener = new TextToSpeech.OnUtteranceCompletedListener() {

		public void onUtteranceCompleted(String utteranceId) {
			Log.i(tag, "TextToSpeech.OnUtteranceCompletedListener ");

		}
	};
// tts
	@Override
	protected void onDestroy() {
		tts.shutdown();
		Log.i(tag, "tts.shutdown");
		super.onDestroy();
	}[/b]