Próbuję zmodyfikować kod Android-Camera2Basic, aby uchwycić serię zdjęć. Jednak nie mogę uzyskać opóźnienia między zdjęciami szybciej niż 200-300ms na moim Nexusie 5, działającym w wersji 5.0.1.Aparaty do przechwytywania aparatów z rodziny Android2 są zbyt wolne.
Próbowałem wielu rzeczy, ale to jest najbardziej podstawowe. To jedyna część zmodyfikowanego przeze mnie kodu Camera2Basic. Mój podgląd TextureView to tylko 50x50dp, ale to nie powinno mieć znaczenia, prawda?
Co jest warte, ten kod ma opóźnienia około 50-100ms na moim Nexusie 6, z L 5.1.
private void captureStillPicture() {
try {
List<CaptureRequest> captureList = new ArrayList<CaptureRequest>();
mPreviewRequestBuilder.addTarget(mImageReader.getSurface());
for (int i=0;i<10;i++) {
captureList.add(mPreviewRequestBuilder.build());
}
mCaptureSession.stopRepeating();
mCaptureSession.captureBurst(captureList, cameraCaptureCallback, null);
mPreviewRequestBuilder.removeTarget(mImageReader.getSurface());
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
CameraCaptureSession.CaptureCallback cameraCaptureCallback = new CameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request,
TotalCaptureResult result) {
Log.d("camera","saved");
mPictureCounter++;
if (mPictureCounter >= 10)
unlockFocus();
}
};
acheroncaptain Czy możesz dołączyć kod, w jaki sposób zaimplementowano tryb zdjęć seryjnych? – user0770