调用需要API级别21(当前为14)

3

我还不太熟悉Android Studio。尝试设置一个基本的TTS应用程序,但在这一行上出现了上述错误:

t1.speak(toSpeak,TextToSpeech.QUEUE_FLUSH,null,null);

正如我所说,我对Android Studio还比较陌生,不确定其他人需要看到哪些文件来解决这个问题,如果需要,告诉我,我会提供更多信息。

1个回答

2
尝试这个。 将 "tts" 替换为 "t1",将 "text" 替换为 "toSpeak",它应该适用于 API 21 及其以下的版本。
public void speak(String text) {
    if (tts != null) {

        if (tts.isSpeaking()) {
            tts.stop();
        }

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            ttsGreater21(text);
        } else {
            ttsUnder20(text);
        }

    }
}

@SuppressWarnings("deprecation")
private void ttsUnder20(String text) {
    HashMap<String, String> map = new HashMap<>();
    map.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "MessageId");
    tts.speak(text, TextToSpeech.QUEUE_FLUSH, map);
}

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void ttsGreater21(String text) {
    String utteranceId = this.hashCode() + "";

    tts.speak(text, TextToSpeech.QUEUE_FLUSH, null, utteranceId);
}

请查看此问题 - President James K. Polk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接