23 Stimmen

Wie kann ich mehrere Fotos aufnehmen, bevor ich die Kamera abstelle?

Ich versuche, mehrere Fotos mit der standardmäßigen Kameraanwendung des Geräts aufzunehmen, die über eine Absicht (MediaStore.ACTION_IMAGE_CAPTURE) gestartet wird. Bei den Geräten, die ich teste, wird die Kamera gestartet, nimmt ein Bild auf, fragt nach einer Bestätigung und kehrt dann zu meiner Aktivität zurück, wo ich das Ergebnis verarbeite.

Ich habe in Erwägung gezogen, Broadcast-Empfänger-Callbacks oder einen Content Observer zu verwenden, aber ich kann keine Möglichkeit finden, die Kamera zu starten und sie aktiv zu halten, bis der Benutzer fertig ist. Wenn möglich, möchte ich vermeiden, eine benutzerdefinierte Kamera-Anwendung zu entwickeln.

Der Grund, warum ich dies tun muss, ist, dass die Benutzer häufig mehrere Fotos hintereinander aufnehmen müssen, und bei einigen Geräten beträgt die Startzeit der Kamera mehr als 5 Sekunden, und die Benutzer, die die Software verwenden, nehmen 10 bis 30 Fotos hintereinander auf; und nicht nur das, sie benötigen auch die Kontrolle über verschiedene Kameraparameter.

Gibt es eine Möglichkeit, die Kameraabsicht zu starten und nur zu meiner Tätigkeit zurückkehren wenn der Benutzer die Kameraanwendung verlässt?

22voto

Chris Hutchinson Punkte 8712

In der SDK-Dokumentation habe ich entdeckt, dass es eine alternative Absichtsaktion für die Gerätekamera gibt, die die Kamera im Standbildmodus startet und erst dann beendet wird, wenn der Benutzer mit der Aktivität fertig ist:

Intent intent = new Intent(
    MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
this.startActivity(intent);

In Verbindung mit einem ContentObserver war dies genau das, was ich erreichen wollte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X