1
我遇到Google云语音问题。我无法暂停Google Cloud Speech,暂停我正在关闭SpeechRecognizer的识别功能,当我再次需要时,我再次启动它。但这样,Stopping需要很多时间来停止,我必须在后台线程中运行。有时它会及时停止,但并非总是如此。对于我在主线程中使用的几天,我没有任何问题,但现在它开始跳过帧,所以我把它移动了。我需要它立即停止,因为停止后跟着语音到文本,并且如果我等到识别停止,那么即使我将它移动到后台线程上,流程也会显得迟缓。 我使用的代码从他们的样品,启动和停止它:Google云语音暂停
private void stopVoiceRecorder() {
mNotifyForVoiceEnd.start();
if (mVoiceRecorder != null) {
mVoiceRecorder.stop();
}
isListening = false;
runOnUiThread(new Runnable() {
@Override
public void run() {
appBar.setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.primary));
}
});
}
开始承认:
private void startVoiceRecorder() {
mNotifyForVoiceStart.start();
if (mVoiceRecorder != null) {
mVoiceRecorder.stop();
mVoiceRecorder = null;
}
mVoiceRecorder = new VoiceRecorder(mVoiceCallback);
mVoiceRecorder.start();
isListening = true;
runOnUiThread(new Runnable() {
@Override
public void run() {
appBar.setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.tab_not_hearing));
}
});
}
我用TraceView和做大量的工作问题是
mVoiceRecorder.stop();
和代码.stop()
public void stop() {
synchronized (mLock) {
if (mThread != null) {
mThread.interrupt();
mThread = null;
}
dismiss();
if (mAudioRecord != null) {
mAudioRecord.stop();
}
}
}
有没有办法暂停识别?