gpt4 book ai didi

android - 对讲中断时不调用 TextToSpeech 的 UtteranceProgressListener

转载 作者:行者123 更新时间:2023-11-29 01:16:02 25 4
gpt4 key购买 nike

我在 TextToSpeech 实例上设置了一个 UtteranceProgressListener。它被调用并且运行良好,但是当用户使用 Talkback 时,它可能会中断我的语音请求并且我的 UtteranceProgressListener 永远不会被调用(甚至 onError)。这是 Android 方面的缺陷还是我做错了什么?

我的代码:

final String utteranceId = generateUtteranceId();
tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onStart(String s) {
if(utteranceId.equals(s)) {
Log.e(TAG, "onStart");
}
}

@Override
public void onDone(String s) {
if(utteranceId.equals(s)) {
Log.e(TAG, "onDone");
}
}

@Override
public void onError(String s) {
if(utteranceId.equals(s)) {
Log.e(TAG, "onError");
}
}
});

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
tts.speak(textToSpeech, TextToSpeech.QUEUE_ADD, null, utteranceId);
} else {
HashMap<String, String> map = new HashMap<String, String>();
map.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, utteranceId);
tts.speak(textToSpeech, TextToSpeech.QUEUE_ADD, map);
}

最佳答案

原来方法 UtteranceProgressListener#onStop(String utteranceId, boolean interrupted) 确实捕获了中断的语音事件。之前没有注意到,因为不是抽象方法,所以Android Studio在写实现类的时候并没有自动插入。每当屏幕阅读器打断当前语音时,将调用此方法并将中断参数设置为 true。

关于android - 对讲中断时不调用 TextToSpeech 的 UtteranceProgressListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39627529/

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