텍스트 음성 변환하는 안드로이드의 official 소개 "활동을 만들기에 좋은 첫 번째 단계는 해당 의도와 함께 TTS 자원의 존재를 확인하는 것입니다"라고 말한다이유는 "사용하기 불편"는 ACTION_CHECK_TTS_DATA의 의도인가?
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
그러나 @this thread에서 gregm 그렇지 않으면 제안 :
또한에서, ACTION_CHECK_TTS_DATA 의도를 사용하지 않는, 그 어색한에 사용입니다.
대신, 다음을 수행하십시오
- 는, TextToSpeech
- 하는 OnInit 만들기 isLanguageAvailable을 확인()이 경우 앱이 모든 설정입니다. 그렇지 않으면 내가 제대로 이해한다면, @gregm이 무엇을/연기
onActivityResult()
에서onInit()
에TextToSpeech.LANG_MISSING_DATA
확인하는 것입니다 제안의 ACTION_INSTALL_TTS_DATA
을 보낼 수 있습니다.
왜이 formal 방식보다 낫다?
왜 ACTION_CHECK_TTS_DATA 그래서 "사용하기 불편"인가?
감사합니다. 귀하의 허락하에 나는 ** 추가 복잡성을 추가해야하는 이유에 대해 강조하고 있습니다 ** ** 본질적으로 대답의 핵심입니다. 나는 "공식적인"접근법이 취해지면 응용 프로그램이 작동하지 않게하는 비판적인 것을 놓치지 않도록하고 싶었습니다. +1하고 동의 함. – an00b
안녕하세요, isLanguageAvailable을 사용하여 테스트했지만 원하는 결과를 제공하지 않습니다. 예를 들어, 한국어 음성 데이터가 설치되어 있지 않습니다. 그러나 한국어 음성 데이터가 다운로드되지 않을 때 isLanguageAvailable을 호출하면 간단히 LANG_COUNTRY_AVAILABLE이 반환됩니다. 이는 올바른 것입니다. 로케일은 음성 데이터가 아직 다운로드되지 않은 상태에서만 엔진에서 사용할 수 있습니다. 그러나 LANG_MISSING_DATA를 얻지 못하기 때문에 음성 데이터가 다운로드되었는지 여부는 확인할 수 없습니다. 솔루션이 더 이상 적용되지 않습니까? 감사! –
추가하려면 LANG_COUNTRY_AVAILABLE은 음성 데이터가 다운로드되었음을 나타내지 않으며, 단지 지원되고 다운로드 될 수 있음을 나타냅니다. –