Как узнать, какой движок используется конкретным экземпляром 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;

    }

}
Другие вопросы по тегам