Как узнать, какой движок используется конкретным экземпляром TextToSpeech?
В Android, как вы можете запросить экземпляр TextToSpeech, чтобы узнать, какой движок он использует?
В документации единственный метод, который выглядит многообещающим, это TextToSpeech.getEngines(), но этот метод возвращает все движки, установленные на устройстве, и не имеет никакого отношения к конкретному экземпляру TextToSpeech.
Когда вы инициализируете экземпляр TextToSpeech, вы указываете, какой Engine вы хотите использовать, и я вижу в исходном коде TextToSpeech, что этот параметр хранится в переменной:
private volatile String mCurrentEngine;
Но так как это личное, вы не можете запросить его напрямую, и они, похоже, не предоставили метод для этого.
Могу ли я (теоретически) просто скопировать весь этот (исходный код) класс в мой проект и изменить эту переменную на public? Я пытался это сделать, но получаю слишком много ошибок, которые не знаю, как исправить (пропущены аннотации и классы без возможности импорта).
Есть ли лучший способ, который я пропустил?
Спасибо!
1 ответ
Это все, что я могу думать до сих пор:
public class TextToSpeechDeluxe extends TextToSpeech {
public String engineName;
public TextToSpeechDeluxe(Context context, OnInitListener listener, String engineName) {
super(context, listener, engineName);
this.engineName = engineName;
}
}