[안드로이드 공부]/안드로이드 공부

안드로이드 TTS 중복 읽기 방지 (2개 이상의 앱)

코코모아 2015. 8. 24. 14:20

아래는 코모스튜디오가 직접 만든 무료 앱이에요
(한 번만 봐주세요 ^^)

01

02

03

정각알림 만들기(말하는시계)

말하는 시계 (취침, 자전거) 

말하는 타이머 음성 스톱워치 

아이스크림 샌드위치 버전까지는 안드로이드에서 TTS를 사용할 때 setOnUtteranceCompletedListener를 사용했으나, 이후 버전 부터는 setOnUtteranceProgressListener를 사용해서 Speaking의 시작과 끝에 대응할 수 있다. 또한, HashMap을 사용하도록 한 것도 큰 변화의 특징이다.


1개의 앱에서만 TTS를 사용한다면 문제가 없지만, 만약 2개 이상의 앱에 TTS를 사용할 경우엔 중복 문제가 발생하게된다. 즉, 1번 앱에서 '동해물입니다.' 라고 끝나야하는데, 2번 앱에서 '백두산인가요'라고 입력 되었던 문구가 함께 울리게 되는 것이다. (2번 앱은 실행 후 꺼버렸음에도 불구하고)


이런 문제를 해결 하기 위해서 아래와 같은 조치가 필요하다.

speak 할 때, 

1. 위 코드에서 'messageID_xxx' 이 부분을 항상 다르게 적어 주어서 명확하게 한다. 

2. mMap은 다 쓴뒤 버린다. setOnUtteranceProgressListener 의 onDone에서 mMap.clear


이런건 기본적인 사항이고,  TTS를 서비스로 돌릴 경우 항상 말 다하면 꺼주는 것이 좋다. 그렇지 않으면, 항상 두 앱이 같이 따라 다니는 듯한 현상을 겪게 될 것이다.

모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다.
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요.