Call setLanguage( ) on the TTS engine before the sample.
This makes the sample play faster, and results in a reliable return value from getLanguage(). bug:5207139 Change-Id: Ic6ca4a2f4aed299d35c320ecc3f327579c66471b
This commit is contained in:
@@ -192,16 +192,31 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
|
|||||||
checkVoiceData(mCurrentEngine);
|
checkVoiceData(mCurrentEngine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void maybeUpdateTtsLanguage(String currentEngine) {
|
||||||
|
if (currentEngine != null && mTts != null) {
|
||||||
|
final String localeString = mEnginesHelper.getLocalePrefForEngine(
|
||||||
|
currentEngine);
|
||||||
|
if (localeString != null) {
|
||||||
|
final String[] locale = TtsEngines.parseLocalePref(localeString);
|
||||||
|
|
||||||
|
if (DBG) Log.d(TAG, "Loading language ahead of sample check : " + locale);
|
||||||
|
mTts.setLanguage(new Locale(locale[0], locale[1], locale[2]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ask the current default engine to return a string of sample text to be
|
* Ask the current default engine to return a string of sample text to be
|
||||||
* spoken to the user.
|
* spoken to the user.
|
||||||
*/
|
*/
|
||||||
private void getSampleText() {
|
private void getSampleText() {
|
||||||
String currentEngine = mTts.getCurrentEngine();
|
String currentEngine = mTts.getCurrentEngine();
|
||||||
Locale currentLocale = mTts.getLanguage();
|
|
||||||
|
|
||||||
if (TextUtils.isEmpty(currentEngine)) currentEngine = mTts.getDefaultEngine();
|
if (TextUtils.isEmpty(currentEngine)) currentEngine = mTts.getDefaultEngine();
|
||||||
|
|
||||||
|
maybeUpdateTtsLanguage(currentEngine);
|
||||||
|
Locale currentLocale = mTts.getLanguage();
|
||||||
|
|
||||||
// TODO: This is currently a hidden private API. The intent extras
|
// TODO: This is currently a hidden private API. The intent extras
|
||||||
// and the intent action should be made public if we intend to make this
|
// and the intent action should be made public if we intend to make this
|
||||||
// a public API. We fall back to using a canned set of strings if this
|
// a public API. We fall back to using a canned set of strings if this
|
||||||
@@ -220,7 +235,6 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment implements
|
|||||||
startActivityForResult(intent, GET_SAMPLE_TEXT);
|
startActivityForResult(intent, GET_SAMPLE_TEXT);
|
||||||
} catch (ActivityNotFoundException ex) {
|
} catch (ActivityNotFoundException ex) {
|
||||||
Log.e(TAG, "Failed to get sample text, no activity found for " + intent + ")");
|
Log.e(TAG, "Failed to get sample text, no activity found for " + intent + ")");
|
||||||
onSampleTextReceived(TextToSpeech.ERROR, null);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user