Je suis en train de construire une application qui utilise l'API de l'appareil photo pour prendre une photo chaque seconde pendant 10 secondes. J'ai suivi le tutoriel dans ce lien Android Camera API et j'ai modifié le code pour obtenir ma liste d'images (voir le code ci-dessous). Tout a parfaitement fonctionné ...Android caméra désactiver stopPreview sur takePicture
Maintenant, le problème est (je suppose) sur la méthode takePicture car elle arrête l'aperçu, je dois commencer à nouveau dans le rappel onPictureTaken qui provoque un petit moment de écran geler.
private void initializeCamera() {
// Create an instance of Camera
mCamera = getCameraInstance();
// Create our Preview view and set it as the content of our activity.
CameraPreview mPreview = new CameraPreview(this, mCamera);
FrameLayout preview = findViewById(R.id.camera_preview);
preview.addView(mPreview);
mCamera.setPreviewCallback(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] bytes, Camera camera) {
startRecognition();
}
});
}
private PictureCallback mPicture = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
mCamera.startPreview(); // <----- Restart preview.. stop freeze
// Task to detect an object in the picture.. Do something
}
};
public void startRecognition() {
if (SystemClock.elapsedRealtime() - startedTime > 10000) {
// Detection has failed.. Do something
}
else {
// Get a frame each second
if (SystemClock.elapsedRealtime() - elapsedTime > 1000) {
elapsedTime = SystemClock.elapsedRealtime();
mCamera.takePicture(null, null, mPicture); // <---- Take picture but stop preview
}
}
}
De doc Camera Android:
8) Après avoir pris une photo, écran de prévisualisation ont arrêté. Pour prendre d'autres photos, appelez d'abord startPreview().
est-il un moyen de désactiver le stopPreview, ou toute autre chose que cette méthode ne, quand je prends la photo?
Nous vous remercions de votre aide.
essayez https://developer.android.com/reference/android/hardware/Camera.html#release() et vous pouvez voir: https://stackoverflow.com/questions/6200369/picturecallback-onpicturetaken-never- appelé –
Ne fonctionne pas ... – fattidare