如何找出特定 TextToSpeech 实例正在使用的引擎?
How to find out what engine is being used by a particular TextToSpeech instance?
在 Android 中,如何查询 TextToSpeech 实例以查明它使用的是什么引擎?
在文档中,唯一看起来有希望的方法是 TextToSpeech.getEngines(),但此方法 returns 设备上安装的所有引擎,与 TextToSpeech 的特定实例无关。
初始化 TextToSpeech 的实例时,指定要使用的引擎,我在 TextToSpeech 的源代码中看到该参数存储在变量中:
private volatile String mCurrentEngine;
但是因为它是私有的,你不能直接查询它,他们似乎也没有提供这样做的方法。
我可以(理论上)将整个(源代码)class 复制到我的项目中并将该变量更改为 public 吗?我尝试这样做,但出现了太多我不知道如何修复的错误(缺少注释和 classes 没有导入选项)。
有没有我错过的更好的方法?
谢谢!
目前我能想到的就这些了:
public class TextToSpeechDeluxe extends TextToSpeech {
public String engineName;
public TextToSpeechDeluxe(Context context, OnInitListener listener, String engineName) {
super(context, listener, engineName);
this.engineName = engineName;
}
}
在 Android 中,如何查询 TextToSpeech 实例以查明它使用的是什么引擎?
在文档中,唯一看起来有希望的方法是 TextToSpeech.getEngines(),但此方法 returns 设备上安装的所有引擎,与 TextToSpeech 的特定实例无关。
初始化 TextToSpeech 的实例时,指定要使用的引擎,我在 TextToSpeech 的源代码中看到该参数存储在变量中:
private volatile String mCurrentEngine;
但是因为它是私有的,你不能直接查询它,他们似乎也没有提供这样做的方法。
我可以(理论上)将整个(源代码)class 复制到我的项目中并将该变量更改为 public 吗?我尝试这样做,但出现了太多我不知道如何修复的错误(缺少注释和 classes 没有导入选项)。
有没有我错过的更好的方法?
谢谢!
目前我能想到的就这些了:
public class TextToSpeechDeluxe extends TextToSpeech {
public String engineName;
public TextToSpeechDeluxe(Context context, OnInitListener listener, String engineName) {
super(context, listener, engineName);
this.engineName = engineName;
}
}