Ich habe eine klassische Android-App mit Kamera-Vorschau (allgemeines Programm, das in vielen Tutorials gefunden werden kann [marakana usw.]), das in einem bestimmten Zeitintervall Bilder aufnehmen soll. Das Threading und das Löschen von Threads erfolgt, Fehler wie "method called after release"
werden behandelt. Aber manchmal tritt der bekannte Fehler 100
auf. Ich akzeptierte die Tatsache, dass es passiert und versuchte, damit umzugehen. Ich habe ErrorCallback
und seine onError
-Methode implementiert, wo das aktuelle Kamera-Objekt veröffentlicht wird und eine neue instanziiert, wie in der offiziellen Dokumentation geschrieben.
Aber (ohne Überraschung) ist es nicht genug. Die neue Kamera wurde möglicherweise falsch zugeordnet, da jetzt eine Nachricht "CameraDemo has been exited unexpectedly"
angezeigt wird.
Ich habe viele Dokumente und Beispiele in der Hoffnung gelesen, dass ein richtiges Vorgehen irgendwo erklärt wird, aber anscheinend hat niemand ein solches Problem. Also würde ich gerne fragen, was ich neben der Freigabe und dem Erstellen einer neuen Kamera noch tun sollte? Hier ist der Code:
Kurz gesagt: Wenn ich die Kamera in onError
callback freigebe und wieder herstelle, wird RuntimeException
Methode, die nach der Freigabe (takePicture) aufgerufen wird, ausgelöst. Soll ich also den Flächenhalter irgendwie wieder der Kamera zuordnen oder den Flächenhalter neu erstellen?
Es wäre genug, um mich z. zu einigen Foren, wo es beschrieben oder gelöst wird, usw. Danke für jede Hilfe.
In meiner App verwende ich die Kamera:
%Vor%Die mCamera = null in der getCameraInstance () ist nur um sicher zu sein, dass überhaupt keine Kamera läuft.
Ich denke, Sie müssen eine komplette Kamera neu erstellen und nicht nur mit dem
öffnen %Vor%Legen Sie dies in onResume oder im Fehlerrückruf fest, je nach Ihren Anforderungen.
So habe ich es behoben, hier ist ein Beispielcode, ich denke, Sie haben die Idee:
%Vor%Tags und Links android android-camera