.Java 파일
XXX extends Activity implements OnInitListener {
TextToSpeech _tts;
boolean _ttsActive = false;
EditText editT;
Button bt_start;
String str;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 옆으로
setContentView(R.layout.main);
editT = (EditText)findViewById(R.id.et);
bt_start = (Button)findViewById(R.id.read);
bt_start.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
str = editT.getText().toString();
_tts.setLanguage(Locale.US);
_ttsActive = true;
_tts.speak(str,
TextToSpeech.QUEUE_FLUSH, null);
}
});
}
@Override
public void onPause(){
super.onPause();
try{
if (_tts != null){
_tts.stop();
_ttsActive = false;
}
}catch(Exception e){}
}
@Override
public void onResume(){
super.onResume();
_tts = new TextToSpeech(getApplicationContext(), this);
}
@Override
public void onDestroy(){
super.onDestroy();
try{
if (_tts != null){
_tts.shutdown();
_tts = null;
}
}catch(Exception e){}
}
public void onInit(int status) {
}
}
Main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="What do you want say? SmartGrid"
/>
<EditText
android:id ="@+id/et"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Read"
/>
</LinearLayout>
재밌는 TTS 예제입니다. 기존에 있는 예제는 정해놓은 말만 하는데, 위는 EditText 값을 String 으로 받아와 읽어주는 예제입니다.
응용해서 재미있는 어플을 만들어볼 수 있겠네요. 참고로 TTS는 시스템 설정에서 따로 받아와서 설치를 해주어야 되며, 다음에 TTS 관련 어플 제작하면서 좀 더 깊게 파면서 포스팅 해볼 예정입니다.
'옛글 > 코드창고' 카테고리의 다른 글
안드로이드 WebView 로딩 중 게이지 막대표시하기 (0) | 2012.01.11 |
---|---|
안드로이드 WebView 로딩 게이지 구현하기 (0) | 2012.01.11 |
안드로이드 XML 파싱 시 HTML 태그 없애는 방법 (0) | 2011.10.31 |
안드로이드 GPS 수신 방법 2가지 "A-GPS / S-GPS" (12) | 2011.08.17 |
안드로이드 GPS Dialog 로 설정 물어보기 (8) | 2011.08.16 |