按键太频繁导致,报不应该报的错误!
当用户点击“某个”按钮后,迅速松手(<1秒),还没真正开始录音,就触发了 stopRecordingAndProcess()
,最终导致 startRecording()
报错(因为还未初始化好 AudioRecord
),并抛出不准确的错误提示:“数据发送失败”
根本原因是因为在不应该的时候触发了stopRecordingAndProcess,
那么就是在控制在间隔多少秒的时不调用呗。
增加延迟/防抖,防止“误触发”
long pressStartTime;
...
case MotionEvent.ACTION_DOWN:pressStartTime = System.currentTimeMillis();startRecording();break;case MotionEvent.ACTION_UP:long duration = System.currentTimeMillis() - pressStartTime;if (duration < 300) {Log.w(TAG, "按下时间过短,忽略此次录音");return true;}stopRecordingAndProcess();break;