summaryrefslogtreecommitdiffstats
path: root/packages/TtsService/src/android/tts/TtsService.java
diff options
context:
space:
mode:
authorCharles Chen <clchen@google.com>2009-07-17 20:57:21 -0700
committerCharles Chen <clchen@google.com>2009-07-17 20:57:21 -0700
commitb79370aad730949543bccf01b2c3d9ed64f493f5 (patch)
tree94c3875e44818b5abd914842c4d32f52a2fbb9cc /packages/TtsService/src/android/tts/TtsService.java
parentaad0fcc9619eb72c18a6afff48ebc9d4011f0f54 (diff)
downloadframeworks_base-b79370aad730949543bccf01b2c3d9ed64f493f5.zip
frameworks_base-b79370aad730949543bccf01b2c3d9ed64f493f5.tar.gz
frameworks_base-b79370aad730949543bccf01b2c3d9ed64f493f5.tar.bz2
Making sure that there are no calls made to the native TTS
layer if the utterance is in the process of being canceled.
Diffstat (limited to 'packages/TtsService/src/android/tts/TtsService.java')
-rwxr-xr-xpackages/TtsService/src/android/tts/TtsService.java42
1 files changed, 24 insertions, 18 deletions
diff --git a/packages/TtsService/src/android/tts/TtsService.java b/packages/TtsService/src/android/tts/TtsService.java
index b3b580c..28801f8 100755
--- a/packages/TtsService/src/android/tts/TtsService.java
+++ b/packages/TtsService/src/android/tts/TtsService.java
@@ -551,16 +551,16 @@ public class TtsService extends Service implements OnCompletionListener {
return;
}
int streamType = DEFAULT_STREAM_TYPE;
+ String language = "";
+ String country = "";
+ String variant = "";
+ String speechRate = "";
if (speechItem.mParams != null){
- String language = "";
- String country = "";
- String variant = "";
for (int i = 0; i < speechItem.mParams.size() - 1; i = i + 2){
String param = speechItem.mParams.get(i);
if (param != null) {
if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_RATE)) {
- setSpeechRate("",
- Integer.parseInt(speechItem.mParams.get(i+1)));
+ speechRate = speechItem.mParams.get(i+1);
} else if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_LANGUAGE)){
language = speechItem.mParams.get(i+1);
} else if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_COUNTRY)){
@@ -579,12 +579,15 @@ public class TtsService extends Service implements OnCompletionListener {
}
}
}
+ }
+ // Only do the synthesis if it has not been killed by a subsequent utterance.
+ if (mKillList.get(speechItem) == null) {
if (language.length() > 0){
setLanguage("", language, country, variant);
}
- }
- // Only do the synthesis if it has not been killed by a subsequent utterance.
- if (mKillList.get(speechItem) == null){
+ if (speechRate.length() > 0){
+ setSpeechRate("", Integer.parseInt(speechRate));
+ }
nativeSynth.speak(speechItem.mText, streamType);
}
} catch (InterruptedException e) {
@@ -624,16 +627,16 @@ public class TtsService extends Service implements OnCompletionListener {
synth.start();
return;
}
+ String language = "";
+ String country = "";
+ String variant = "";
+ String speechRate = "";
if (speechItem.mParams != null){
- String language = "";
- String country = "";
- String variant = "";
for (int i = 0; i < speechItem.mParams.size() - 1; i = i + 2){
String param = speechItem.mParams.get(i);
- if (param != null){
- if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_RATE)){
- setSpeechRate("",
- Integer.parseInt(speechItem.mParams.get(i+1)));
+ if (param != null) {
+ if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_RATE)) {
+ speechRate = speechItem.mParams.get(i+1);
} else if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_LANGUAGE)){
language = speechItem.mParams.get(i+1);
} else if (param.equals(TextToSpeech.Engine.TTS_KEY_PARAM_COUNTRY)){
@@ -645,12 +648,15 @@ public class TtsService extends Service implements OnCompletionListener {
}
}
}
- if (language.length() > 0){
- setLanguage("", language, country, variant);
- }
}
// Only do the synthesis if it has not been killed by a subsequent utterance.
if (mKillList.get(speechItem) == null){
+ if (language.length() > 0){
+ setLanguage("", language, country, variant);
+ }
+ if (speechRate.length() > 0){
+ setSpeechRate("", Integer.parseInt(speechRate));
+ }
nativeSynth.synthesizeToFile(speechItem.mText, speechItem.mFilename);
}
} catch (InterruptedException e) {