Ich habe implementiert, um Audio im Hintergrund mit Android MediaRecorder aufzunehmen, wenn die Audio-Aufnahme läuft und Benutzer öffnen die native Kamera, um Videos aufzunehmen, gibt es
Kamerafehler "Verbindung zur Kamera nicht möglich"
oder auf einigen Telefonen erscheint der Fehler als
Ihre Kamera wird von einer anderen Anwendung verwendet
Wenn ich mediarecorderklicke stoppe, dann funktioniert die native Kamera-Videoaufzeichnung. Ich suchte nach Ereignissen, um zu wissen, wann Camera das Video startet. In meiner App stoppe ich dann den Mediendatensatz, ich habe
NEW_VIDEO und NEW_PICTURE -Ereignisse werden ausgelöst, wenn ein Bild oder Video erfasst und im Verzeichnis gespeichert wird. Weiß jemand, wie dieses Problem gelöst werden kann? Ich möchte in meiner App wissen, wann Native / Camera Apps Videos aufnehmen. Vielen Dank im Voraus
Sogar ich hatte das gleiche Problem. Sobald die Kamera-Ressource von einer Anwendung verwendet wird, können Sie sie, bis sie freigegeben wird, in einer anderen App oder sogar in einem Dienst verwenden. Wenn ein Dienst die Kameraressource nutzt, können wir bis auf die Freigabe der Kamera keine Kamerahardware verwenden. Sie können überprüfen, ob Kamera-Hardware mit diesem Code verwendet wird: -
%Vor% CameraManager.AvailabilityCallback
stellt onCameraAvailable(String cameraId)
-Methode zur Verfügung, um zu erkennen, ob die Kamera verfügbar ist oder nicht?
Ссылка
Das Abrufen aller Kamera-IDs ist identisch mit den obigen, wie in @GAGAN gezeigt.
%Vor%Hinweis: Bis andere Anwendungen Ihre Kamera-Hardware verwenden, werden sie von ihnen absichtlich verwendet. Also, bis diese Apps deine Hardware nicht freigeben, kannst du das nicht nutzen, es ist klar. Sie können nicht wissen, ob diese Apps tatsächlich die Kamera benötigen. Wir glauben, dass der Prozess die Hardware bei Bedarf reserviert.
Aber wir können den Listener einstellen, wenn die Kamera verfügbar wird (kostenlos), so dass Sie sofort verwenden können.
%Vor% Die Verwendung von CameraManager.AvailabilityCallback
abstract class ist, wenn Sie Objekt instanziieren, Sie anonyme Instanziierung implementieren Callbacks wie onCameraAvailabe()
, das ist tatsächlich ein listener
, dass Sie von der Kamera Observer
erhalten.
Antwort: Wenn Sie Ihre Befehle zur Kamerabearbeitung in onCameraAvailable()
callback gesetzt hätten, würde ich Ihnen garantieren, dass Sie den Fehler, den Sie angezeigt haben, nicht erhalten haben.
Wenn die Kamera von anderen Apps im Hintergrund verwendet wird, bedeutet dies, dass diese anderen Apps fehlerhaft sind, da die Kamera eine Vordergrundvorschau benötigt; Sie geben die Kamera auch dann nicht frei, wenn sie damit fertig sind. Niemand benutzt die Kamera im Hintergrund. Auch in diesem Fall sollten Sie den Kameraprozess nicht energisch abbrechen, da es zu Speicherlecks kommen kann. Weil Sie nicht wissen, wie andere Prozesse Kamera verwenden.
Tags und Links android camera android-camera video-capture mediarecorder