gpt4 book ai didi

android - 何时使用 UtteranceProgressListener

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:08:09 25 4
gpt4 key购买 nike

我有一个带有两个 ImageButton(播放停止)的 FrameLayout。默认情况下

播放 按钮是VISIBLE停止 按钮是GONE

单击播放 会启动读取文本的 TTS 引擎。阅读完文本后,我想设置可见性

播放到GONE,停止到VISIBLE

我应该使用 UtteranceProgressListener 来达到目的吗?如果没有,

  • 如何执行上述操作?
  • UtteranceProgressListener 的用途是什么?

最佳答案

你的意思是:

  • 开始阅读 -> Play 消失,Stop 可见
  • 阅读结束 -> 播放可见,停止消失

无论如何,UtteranceProgressListener 的目的正是您所描述的。用于监控语音合成的进度。

您可以向任何说出的文本添加“话语 ID”(此处为“helloText”):

tts.speak("Hello Stack Overflow!", TextToSpeech.QUEUE_ADD, "helloText");

但这在你的情况下并不是真正必要的,所以最后一个参数可以为空:

tts.speak("Hello Stack Overflow!", TextToSpeech.QUEUE_ADD, null);

应在调用 speak() 之前添加 UtteranceProgressListener。例如,如果 TTS 状态为 TextToSpeech.SUCCESS,您可以在 TTS 初始化回调 onInit() 中执行此操作。

它可以是一个单独的类,也可以只是一个匿名内部类:

speech.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onStart(String utteranceId) {
// Speaking started.

}

@Override
public void onDone(String utteranceId) {
// Speaking stopped.

}

}

@Override
public void onError(String utteranceId) {
// There was an error.
}
});

onStart() 方法在说话开始时触发(在调用 speak() 后不久),因此这是切换可见按钮的一个可能位置。例如,播放 按钮可以切换为停止 按钮。

onDone() 方法在讲话结束时被触发,这是另一个可以切换可见按钮的地方。例如,停止 按钮可以切换为播放 按钮。

如您所见,如果您在 speak() 方法调用中提供了“话语 ID”,那么这两种方法都可用。如果您需要确切知道正在说出/已说完/因错误而失败的文本,这将很有用。

关于android - 何时使用 UtteranceProgressListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37004546/

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