如何找出特定TextToSpeech实例正在使用的引擎?

时间:2018-06-10 05:30:40

标签: android text-to-speech android-source speech pico

在Android中,如何查询TextToSpeech实例以找出它正在使用的引擎?

在文档中,唯一看起来很有前景的方法是TextToSpeech.getEngines(),但是此方法返回设备上安装的所有引擎,并且与TextToSpeech的特定实例无关。

初始化TextToSpeech的实例时,指定要使用的引擎,我可以在TextToSpeech的源代码中看到此参数存储在变量中:

private volatile String mCurrentEngine;

但由于它是私有的,你不能直接查询它们,它们似乎没有提供这样做的方法。

我(理论上)可以将整个(源代码)类复制到我的项目中并将该变量更改为public吗?我试过这样做,但是我得到了太多错误,我不知道如何解决(缺少注释和类而没有导入选项)。

我错过了更好的方式吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

到目前为止,这是我能想到的全部内容:

public class TextToSpeechDeluxe extends TextToSpeech {

    public String engineName;


    public TextToSpeechDeluxe(Context context, OnInitListener listener, String engineName) {

        super(context, listener, engineName);

        this.engineName = engineName;

    }

}