Как узнать, какой движок используется конкретным экземпляром TextToSpeech? - PullRequest
0 голосов
/ 10 июня 2018

В Android, как вы можете запросить экземпляр TextToSpeech, чтобы выяснить, какой движок он использует?

В документации единственный перспективный метод - это TextToSpeech.getEngines (), но этот методвозвращает все движки, установленные на устройстве, и не имеет ничего общего с конкретным экземпляром TextToSpeech.

Когда вы инициализируете экземпляр TextToSpeech, вы указываете, какой Engine вы хотите использовать, и я вижу в исходном кодедля TextToSpeech этот параметр хранится в переменной:

private volatile String mCurrentEngine;

Но поскольку он является закрытым, вы не можете запросить его напрямую, и они, похоже, не предоставили метод для этого.

Могу ли я (теоретически) просто скопировать весь этот (исходный код) класс в мой проект и изменить эту переменную на public?Я пытался это сделать, но получаю слишком много ошибок, которые не знаю, как исправить (пропуская аннотации и классы без возможности импорта).

Есть ли лучший способ, который я пропустил?

Спасибо!

1 Ответ

0 голосов
/ 12 июня 2018

Это все, что я могу себе представить:

public class TextToSpeechDeluxe extends TextToSpeech {

    public String engineName;


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

        super(context, listener, engineName);

        this.engineName = engineName;

    }

}
...