java - TextToSpeech setLanguage 不起作用?

标签 java android locale text-to-speech google-text-to-speech

我将我的 TextToSpeech 设置为使用特定语言(英语 - 英国),使用语言环境“en_GB”。但它总是使用我的设备默认语言。没有办法以编程方式设置它吗?我已经下载了该语言所需的文件,当我将 TTS 的默认语言更改为“英语 - 英国”时,它可以工作,但当默认语言不同时,编程方法不起作用。我已尽最大努力在网上搜索,但无法解决此问题。

    String ttsEngine = "com.google.android.tts";
    txt2Speech = new TextToSpeech(this, this, ttsEngine);
    //Locale ttsLocale = new Locale("eng", "GBR");
    txt2Speech.setLanguage(new Locale("en_GB"));

尝试了几种方法,但都没有用。 我不能以编程方式设置我的 TTS 语言吗?

谢谢

编辑:回应“A Honey Bustard”

其他代码:

public class MainActivity extends AppCompatActivity implements TextToSpeech.OnInitListener

我的onInit()

public void onInit(int status) {
    // TODO Auto-generated method stub

}

此外,一旦我的 TextToSpeech 初始化,我就会在我的 onCreate() 中调用 .setLanguage()。那是对的吗?另外我只调用一次。不需要每次都调用它吧?我也在 GS7 上测试

最佳答案

一旦 Text to Speech Engine 正确初始化,您需要设置语言。

public void onInit(int status) {

    switch (status) {

        case SUCCESS:
        // Set the language here
        break;
        case ERROR:
         // Something went wrong. You can't set the language
        break;
    }
}

应该这样做。

关于java - TextToSpeech setLanguage 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38189386/

相关文章:

Android - 方向更改时强制重置区域设置

java - 如何在不使用 queryParam 的情况下设置 GWT 语言环境 onLoad?

android - RO 语言环境无法识别?如何修复语言环境?

java - 为回收器 View 项目装饰线添加厚度

java - 在数据结构中存储边

java动态类加载

java - 访问被拒绝发现属性“ro.sf.lcd_密度

android - 如何使用水平滚动创建 Recycler Grid View

java - 如何使用 libvirt java 绑定(bind)构建项目

android - 仅从具有物化路径的表中选择直接后代