Ich versuche Zustand SpeechRecognizer
zu verfolgen, wie folgt aus:Wie überprüft man, ob SpeechRecognizer gerade läuft?
private SpeechRecognizer mInternalSpeechRecognizer;
private boolean mIsRecording;
public void startRecording(Intent intent) {
mIsRecording = true;
// ...
mInternalSpeechRecognizer.startListening(intent);
}
Problem mit diesem Ansatz mIsRecording
Flagge auf dem neuesten Stand hält ist hart, z.B. wenn es ERROR_NO_MATCH
Fehler sollte es false
oder nicht eingestellt werden?
ich unter Eindruck bin einige Geräte die Aufnahme stoppen, dann und andere nicht.
Ich sehe kein Verfahren wie SpeechRecognizer.isRecording(context)
, so frage ich mich, ob es Weg, durch laufende Dienste abzufragen.
, wie ich in einer Frage erwähnt, Wenn 'onError' ausgeführt wird, bedeutet das * nicht *, dass das Gerät die Audioaufnahme gestoppt hat. Wenn es ERROR_NO_MATCH ist, stoppt es manchmal die Aufnahme, manchmal nicht. – Piotr
Und was, wenn Sie 'stopListening()' im Falle von 'ERROR_NO_MATCH' aufrufen? – N0un
Aber ich möchte nicht mit der Aufnahme aufhören, wenn das Gerät fortfahren möchte. – Piotr