- 안드로이드에서 제공하는 TextToSpeech 클래스를 사용해, 안드로이드 애플리케이션에서 텍스트 음성으로 변환하여 읽어주는 기능을 구현하는 코드.
- 초기화 부분, `onInit`, `readAuthent`, `onDestroy` 메서드가 있음
//tts 관련 코드
textToSpeech = TextToSpeech(this, this)
//tts 재생 버튼
btn_playTts.setOnClickListener {
readAuthent(generatedAuthent)
}
//tts 관련 코드
override fun onInit(status: Int) {
if (status == TextToSpeech.SUCCESS) {
val result = textToSpeech.setLanguage(Locale.US)
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
Toast.makeText(this, getString(R.string.lang_not_supported), Toast.LENGTH_SHORT).show()
}
} else {
Toast.makeText(this, getString(R.string.init_failed), Toast.LENGTH_SHORT).show()
}
}
//보안문자열을 문자 하나씩 읽도록
private fun readAuthent(generatedAuthent: String) {
for (char in generatedAuthent) {
textToSpeech.speak(char.toString(), TextToSpeech.QUEUE_ADD, null, null)
//중간에 텀 두고 읽도록
Thread.sleep(100)
}
}
//tts 관련 코드
override fun onDestroy() {
if (textToSpeech.isSpeaking) {
textToSpeech.stop()
}
textToSpeech.shutdown()
super.onDestroy()
}
1. 초기화를 한 다음
2. onInit 메서드를 통해 초기화 상태를 전달받아서, success인 경우 언어를 미국 영어로 설정하고, 실패한 경우 실패 메시지를 토스트로 표시함
3. readAuthent(이름은 변경 가능)에서, 다른 함수를 통해 만든 보안문자를 매개변수로 받아 100밀리초의 간격을 두고 한 글자씩 읽어주는 역할을 하는 메서드를 만들었고,
4. onDestroy 메서드를 통해 액티비티 종료 시 현재 tts가 읽고있는지를 확인하고 읽고 있으면 중지하고, TextToSpeech를 종료함
'Android Studio' 카테고리의 다른 글
[Android 앱개발 숙련] 어댑터 뷰, 리스트 뷰, 그리드 뷰 (# 추가하기) (0) | 2024.04.09 |
---|---|
[Android 앱개발 숙련] 뷰 바인딩 - 개념, 설정방법 (# 추가하기) (0) | 2024.04.09 |
[Android 앱개발 입문] 액티비티 생명주기 (# 추가하기) (0) | 2024.03.21 |
[Android 앱개발 입문] 액티비티 간의 데이터 전달 (# 추가하기) (0) | 2024.03.21 |
[Android 앱개발 입문] Intent (# 추가하기) (0) | 2024.03.20 |