TextToSpeech有一种设置语速的方法:setSpeechRate()。但它没有查询当前速度的相反方法。
有没有办法在系统中查询该值?
您可能会获得默认的 TTS 语速
Settings.Secure.getInt(getContentResolver(), Settings.Secure.TTS_DEFAULT_RATE, 100) / 100f;
我一直在寻找类似的东西,似乎真的没有这样的方法。但是由于1.0 是正常的语速,我通过将语速保持在自己的变量中来解决它。我有一个类提供了一些使用 TTS 的方法,所以这是我的实现:
public class MyTts {
private static float rate = 1.0f;
...
public float getSpeechRate() {
return rate;
}
public int setSpeechRate(float rt) {
rate = rt;
return tts.setSpeechRate(rate);
}
...
}
在哪里setSpeechRate
退货TextToSpeech.ERROR
或TextToSpeech.SUCCESS
根据文件。
编辑:似乎当我将速率设置为 1.5f 然后又回到 1.0f 时,情况就不一样了。这取决于 Android 中的 tts 设置。