操作流程:关闭屏幕,倒计时1分钟后,调用开启录音代码(只有在熄屏的时候会报错,开启屏幕的时候一切正常)
报错如下:
2020-09-18 15:10:49.310 5072-5237/com.jhtwl.kepu E/ASREngine: EVoiceRecognitionClientWorkStatusError errorDomain : 20 errorCode : 2 desc : VAD detect: no speech. mLastRecognitionResult:
2020-09-18 15:10:49.330 5072-5072/com.jhtwl.kepu E/lsjht: ;params :{"origin_result":{"sn":"","error":3,"desc":"VAD detect no speech","sub_error":3101},"error":3,"desc":"VAD detect no speech","sub_error":3101}
核心代码如下:
//模拟在熄屏后定时开启录音
RxTimerUtil.timer(1000 * 60, new RxTimerUtil.IRxNext() {
@Override
public void doNext(long number) {
Map params = new LinkedHashMap<>();
String event = SpeechConstant.ASR_START;
params.put(SpeechConstant.ACCEPT_AUDIO_VOLUME, false);
(new AutoCheck(getApplicationContext(), new Handler(), false)).checkAsr(params);
String json = new JSONObject(params).toString();
asr.send(event, json, null, 0, 0);
}
});
图片好像看不清楚
看报错3101是指长时间未检测到人说话,当时是否没有人进行说话呢?可以重试下看看是否是这个问题。
这个不是保活的问题吧 我的app并没有死啊 其他业务流程熄屏后也一直在运行 就这个语音识别无法使用
如果说app被杀死了 那么应该错误日志都不会打印出来才对吧
sdk不支持后台运行,需要自己写保活