gpt4 book ai didi

android - 使用 API 21 的 TextToSpeech

转载 作者:IT王子 更新时间:2023-10-28 23:34:11 30 4
gpt4 key购买 nike

有人可以帮助我使用带有 API 21 的 TTS。版本 21 已弃用所有可用示例

这是我在最后一行给出错误的代码:

Calendar cal = Calendar.getInstance();
cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String text = sdf.toString();
btn.setText("Ouvir as Horas");

TextToSpeech tts = new TextToSpeech(NightClock.this,(TextToSpeech.OnInitListener) NightClock.this);
tts.setLanguage(Locale.US);
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);

在 Android 开发人员中,它表示此方法已被弃用并由以下内容取代:

speak(String text, int queueMode, HashMap params) This method was deprecated in API level 21. As of API level 21, replaced by speak(CharSequence, int, Bundle, String).

有人可以帮我编写应用程序的代码吗?

最佳答案

我搜索了各种网站。最后,我想我可以得到你的问题的答案......

而不是直接调用 tts.speak(),而是放入下面的 if-else 语句。

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

然后声明ttsGreater21()和ttsUnder20()如下。

@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);
}

我使用 Genymotion VM Android 5.0 和 Android 4.4.4 确认了上述代码。

关于android - 使用 API 21 的 TextToSpeech,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27968146/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com