java - 如何为Android文本转语音制作暂停按钮?

标签 java android text-to-speech

我是 Android 开发新手,这是我第一次使用 stackoverflow。
我目前正在为我的软件工程主题开发一个简单的锻炼应用程序,并且我实现了文本转语音来读出锻炼步骤。 我有一个名为“播放/暂停音频”的按钮
这是我的 onclick 监听器:

  speak.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if(!tts.isSpeaking()) {
                HashMap<String, String> params = new HashMap<String, String>();
                params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "sampletext");
                tts.speak(tv.getText().toString(), TextToSpeech.QUEUE_ADD, params);
            } else {
                tts.stop();
            }
        }
    });

但是当我尝试暂停它时,它会停止并重新启动该过程。 有没有办法暂停 TTS?
非常感谢!!

最佳答案

使用时可以使用playSilence()方法来暂停:

public void pause(long duration){
        tts.playSilence(duration, TextToSpeech.QUEUE_FLUSH, null);
    }

其中持续时间以毫秒为单位。

例如,调用 pause(5000) 将暂停 5 秒

关于java - 如何为Android文本转语音制作暂停按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28670741/

相关文章:

android - PublishSubject 与 Kotlin 协程(流程)

azure - Azure 是否有允许超过 1024 个字符的 TTS(文本转语音)服务?

java - java中的日期格式不正确

java - Postgresql 过程未从 JDBC 调用

java - 读取一个巨大的固定宽度文件

java - RatingBar 不显示准确的评分

android - 在 React Native 中按下按钮时一个接一个地附加 TextInput 组件

java - 使改造省略未设置的查询参数

text-to-speech - 使用 google cloud api 时的计费/配额问题

macos - 使 `say` 终端实用程序和 NSSpeechSynthesizer 与 Siri 语音一起使用