Android TextToSpeech Получить скорость речи от системы - PullRequest
0 голосов
/ 29 января 2020

У меня есть приложение Android TV, работающее на Fire TV Stick. Я инициализировал TextToSpeech движок и вызываю его через функцию speak. Моя проблема в том, что скорость речи (скорость разговора) не меняется, когда я меняю их в настройках. Я знаю, что могу установить скорость речи в соответствии с моим предпочтением, используя setSpeechRate(rate), но я хотел бы знать, как получить скорость из системы.

Я до сих пор пытался использовать : Settings.Secure.getString(contentResolver, Settings.Secure.TTS_DEFAULT_RATE);, который возвращает null, и Settings.Secure.getInt(contentResolver, Settings.Secure.TTS_DEFAULT_RATE);, который выдает ошибку SettingNotFound. Если я дам ему запасное значение, он всегда будет использовать его независимо от того, как я изменю системные настройки VoiceView. Мой код примерно выполняет следующие действия:

TextToSpeech engine = new TextToSpeech(context, this);
ContentResolver contentResolver = context.getContentResolver();
int speechRate = Settings.Secure.getInt(contentResolver, Settings.Secure.TTS_DEFAULT_RATE, 100);
engine.setSpeechRate((float)(speechRate / 100));
engine.speak("This is a sample sentence", QUEUE_FLUSH, null, utteranceID);

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

Есть ли какой-то другой способ получить настройки доступности, такие как скорость VoiceView, в Android

...