我正在使用Android Text to Speech引擎来阅读一些文本并且它正在运行。但我的文字包含数字,我希望数字逐位读取。
我在文档中找不到任何内容,但我仍然希望有人知道我该怎么做。
答案 0 :(得分:3)
API不允许您指定文本的读取方式,因此您的代码必须修改文本输入,以便读取单个数字。
我建议在每个号码之间添加一个空格。这应该导致TextToSpeech
读取个别数字。
如果您需要一些代码来帮助您检测数字,请使用:
private boolean isNumber(String word)
{
boolean isNumber = false;
try
{
Integer.parseInt(word);
isNumber = true;
} catch (NumberFormatException e)
{
isNumber = false;
}
return isNumber;
}
答案 1 :(得分:0)
接受的答案有一个小缺陷。如果数字为“0”作为其中一个数字,则将其读作字母“o”而不是零。我建议采用以下解决方案。
String number = "1230";
for(int i = 0 ; i < number.size(); i++) {
/* refer Speech API , Don't use QUEUE_FLUSH as it results in flushing
some characters in this case */
engine.speak(Character.toString(number.charAt(i)),QUEUE_ADD,null);
}
答案 2 :(得分:-2)
/* refer Speech API , Don't use QUEUE_FLUSH as it results in flushing
some characters in this case */
for(int i = 0 ; i < number.size(); i++) {
engine.speak(Character.toString(number.charAt(i)),QUEUE_ADD,null);
}