Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将文本中的荷兰语设置为语音?_Android_Text To Speech_Android Location - Fatal编程技术网

Android 如何将文本中的荷兰语设置为语音?

Android 如何将文本中的荷兰语设置为语音?,android,text-to-speech,android-location,Android,Text To Speech,Android Location,我想在TTS对象中设置荷兰语。代码如下: @Override public void onInit(int status) { if ( status == TextToSpeech.SUCCESS ) { int result = tts.setLanguage(Locale.getDefault()); System.out.println ( "Result : " + result + " " + Locale.getDefault

我想在TTS对象中设置荷兰语。代码如下:

@Override
public void onInit(int status) 
{
    if ( status == TextToSpeech.SUCCESS ) 
    {
        int result = tts.setLanguage(Locale.getDefault());

        System.out.println ( "Result : " + result  + " " + Locale.getDefault().getLanguage() );

        if (result == TextToSpeech.LANG_MISSING_DATA
                || result == TextToSpeech.LANG_NOT_SUPPORTED) 
        {
            Toast.makeText( this , "Please Set your Language to English US.", Toast.LENGTH_LONG ).show();
        }
        else
        {
            tts.speak( "Hoe gaat het",TextToSpeech.QUEUE_FLUSH, null );
        }
    }
}
下一行设置TTS中的语言

int result = tts.setLanguage(Locale.getDefault());
可用区域设置位于区域设置中

现在,如果我的手机语言是荷兰语,那么我可以将TTS语言设置为荷兰语,但如果我的手机语言不是荷兰语(例如,如果是英语),则无法将TTS语言设置为荷兰语


有人能帮我在TTS中设置荷兰语吗?

您正在
setLocale
中设置默认语言环境。这就是问题的原因:如果我的手机语言是荷兰语,那么我可以将TTS语言设置为荷兰语,但是如果我的手机语言不是荷兰语(例如,如果是英语),那么就没有选项将TTS语言设置为荷兰语

您应该使用所需的区域设置。因此,替换

int result = tts.setLanguage(Locale.getDefault());

例如:

int result = tts.setLanguage(Locale.GERMAN);
请参阅,其中包括可设置的可用区域设置。那里没有荷兰语

尽管这篇文章提到荷兰语是可用的。可能不是针对android,而是针对java,正如建议的那样

希望这能有所帮助。

这应该能奏效

int result = tts.setLanguage(new Locale("nl_NL"));
印度语

setLanguage(新语言环境(“hin”、“IND”、“variant”)

美国英语

设置语言(新语言环境(“英语”、“美国”、“变体”)


其中newsreaderTTS是TTS。

请再次检查这个问题,我在Locale中添加了可用选项的图像。到底为什么Dutchland中的“de”前缀是“Deutschland”而不是“nl”?对于正在研究这个问题的人,您需要将前缀“de_nl”更改为“nl_nl”以获得正确的荷兰语
int result = tts.setLanguage(new Locale("nl_NL"));