我在android中使用pocketsphinx语音识别器处理个人助理。这是我的应用程序每次听到特殊单词时的工作方式,个人助理会回答并执行任务。我一直在释放麦克风时遇到一些问题。我不知道这是不是一个bug。只有当我关闭应用程序时麦克风仍在寻找该单词并使用文本到语音进行回答时,才会发生这种情况。即使屏幕关闭。当我试图录制视频时,它说麦克风被另一个应用程序使用。所以我必须再次打开我的应用程序并关闭应用程序以释放麦克风。据我所知,释放资源的唯一生命周期是onStop,onPause和onDestroy。它不能是我的手机发生故障我用两个不同的手机测试了应用程序,有时它发生在他们的机器人。任何帮助,将不胜感激。 这是我释放麦克风,相机和文本到语音的方式。提前致谢
private edu.cmu.pocketsphinx.SpeechRecognizer recognizer;
@Override
public void onPause() {
super.onPause();
if (tts != null) {
tts.shutdown();
}
if (camera != null) {
camera.release();
camera = null;
}
if (recognizer != null) {
recognizer.stop();
recognizer.cancel();
recognizer.shutdown();
recognizer = null;
}
}
@Override
protected void onStop() {
super.onStop();
if (tts != null) {
tts.shutdown();
}
if (camera != null) {
camera.release();
camera = null;
}
if (recognizer != null) {
recognizer.cancel();
recognizer.shutdown();
recognizer = null;
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (tts != null) {
tts.shutdown();
}
if (camera != null) {
camera.release();
camera = null;
}
if (recognizer != null) {
recognizer.cancel();
recognizer.shutdown();
}
}
答案 0 :(得分:1)
尝试覆盖onbackpressed方法并在那里发布记录器停止代码。然后最后加入youractivity.finish; 一旦按下后,这将破坏你的活动并且应该停止录音机