我正在使用android中使用pocketsphinx语音识别器的个人助理。这是我的应用程序每次听到特殊字词时的个人助理会回复并执行任务的方式。麦克风的释放我一直有一些问题。我不知道它是否是一个错误。它仅在我关闭应用程序时才会发生,麦克风仍然在查找该单词并使用文本到语音进行回答。即使屏幕关闭。当我试图录制视频时,表示麦克风被其他应用程序使用。所以我必须再次打开我的应用程序并关闭应用程序以释放麦克风。据我所知,释放资源的唯一生命周期是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();
}
}
停止onPause后取消可能不是一个好主意,尝试只使用取消。 –