1

Ich arbeite an einem persönlichen Assistenten mit Pocketsphinx Spracherkenner in Android. So funktioniert meine App jedes Mal, wenn ein spezielles Wort gehört wird, antwortet der persönliche Assistent und führt eine Aufgabe aus. Ich hatte einige Probleme mit der Freigabe des Mikrofons. Ich weiß nicht, ob es ein Fehler ist. Es passiert nur manchmal, wenn ich die Anwendung schließe, sucht das Mikrofon immer noch nach dem Wort und antwortet mit Text-zu-Sprache. Obwohl der Bildschirm ausgeschaltet ist. Wenn ich ein Video aufnehmen wollte, heißt es, Mikrofon wird von einer anderen Anwendung verwendet. Also muss ich meine App erneut öffnen und die App schließen, um das Mikrofon freizugeben. Nach meinem Wissen sind onStop, onPause und onDestroy die einzigen Lebenszyklen, um Ressourcen freizugeben. Es kann nicht mein Telefon sein, das eine Fehlfunktion hat. Ich habe die App mit zwei verschiedenen Handys getestet und immer noch passiert es manchmal in Bot. Jede Hilfe wäre willkommen. So wird das Mikrofon, die Kamera und der Text in Sprache ausgegeben. Vielen Dank im VorausManchmal wird Mikrofon nicht für andere Anwendungen freigegeben

+0

Abbrechen nach dem Stopp in onPause ist wahrscheinlich keine gute Idee, versuchen Sie einfach abzubrechen. –

Antwort

1

Versuchen Sie, die Onbackpressed-Methode zu überschreiben und Ihren Rekorder-Stop-Code dorthin zu stellen. Und dann füge am Ende endlich yeractivity.finish hinzu; Dies soll deine Aktivität zerstören, sobald zurück gedrückt wird und den Recorder stoppen sollte

+0

Ich werde das jetzt versuchen. Ich werde es testen und Sie wissen lassen. Gibt es irgendeine Methode auch für die Homebutton-Taste genauso wie die Onback-Taste? Danke – sptBot

+0

Probieren Sie OnUserLeaveHint() Dies wird Instanzen der App in irgendeiner Weise wie Teilnahme an einem Anruf, drücken Honne-Taste usw. –

+0

Ich habe bereits die onBackPressed-Methode implementiert. Ich werde die Onbackpresse für einige Zeit testen müssen. Wie ich schon sagte, es passiert nur manchmal. Ich versuche herauszufinden, wo das Mikrofon nicht freigegeben wird. Ich dachte, dass onStop, onPause und onDestroy ausreichend waren, um Ressourcen für andere Apps freizugeben. onUserLeaveHint() wird es auch die onBackpressed basierend auf [link] (https://stackoverflow.com/questions/6612058/android-onbackpressed-onuserleavehint) @AndyW Antwort behandeln? – sptBot

Verwandte Themen