我正在与安卓系统上的TextToSpeech合作,以说出一系列的文本。因为它是一个很大的字符串,所以我使用了一个新的线程。
问题是,当对讲语音辅助功能被启用时,它会停止阅读我的应用程序以说出设备的通知,当用户触摸屏幕时读取其他按钮,等等。
我需要知道对讲机什么时候会说话,所以我中断了我的线程,当对讲机结束宣布它是什么时,我的tts
将能够继续阅读。
发生的情况是,我的tts
读取了第1行、第2行、第3行(因此对讲说明了一些事情),而我的tts
没有读取第4行、第5行... (...)。它只是在对讲后恢复到第50,60行,因为我的重复,也就是在线程中,一直在运行,而演讲者正在被对讲占用。
有没有人对此有任何指导/解决方案?
发布于 2020-05-07 14:36:29
您可以使用UtteranceProgressListener覆盖onStop方法。当使用talkback的用户做任何事情时,可以通过此方法通知您。顺便说一句,onStop不是一个抽象的方法,所以你应该重写自己。我希望你已经找到了:)
textToSpeech.setOnUtteranceProgressListener(
new UtteranceProgressListener() {
@Override
public void onStart(String utteranceId) {
}
@Override
public void onDone(String utteranceId) {
}
@Override
public void onStop(String utteranceId, boolean interrupted) {
super.onStop(utteranceId, interrupted);
yourCallback.stop();
}
@Override
public void onError(String utteranceId) {
}
});
https://stackoverflow.com/questions/52300925
复制相似问题