카메라 API를 사용하여 매초 10 초 동안 한 장의 사진을 찍는 앱을 만들려고합니다. 이 링크 Android Camera API에있는 자습서를 따라 코드를 수정하여 내 사진 목록을 가져 왔습니다 (아래 코드 참조). 이제 모든Android 카메라 사용 중지 takePreview on takePicture
... 완벽하게 작동, 문제입니다 (내 생각)는 미리을 정지하기 때문에, 내가 화면의 작은 순간을 일으키는 원인이되는 콜백 onPictureTaken에서 다시 시작해야 takePicture 방법에 동결. 안드로이드 카메라 문서에서
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
}
}
}
은 :
8) 사진을 촬영 한 뒤, 미리보기 화면이 중지됩니다. 더 많은 사진을 찍으려면 먼저 startPreview()를 다시 호출하십시오.
그렇지 않으면 stopPreview, 또는 아무것도를 해제하는 방법이 있나요이 방법은 않는다는 것을, 내가 사진을 때?
도움 주셔서 감사합니다.
https://developer.android.com/reference/android/hardware/Camera.html#release()를 시도하면 다음을 볼 수 있습니다. https://stackoverflow.com/questions/6200369/picturecallback-onpicturetaken-never- 호출 –
작동하지 않습니다 ... – fattidare