대개 답은 간단합니다. 내가 camera.takePicture(null, null, null, pictureCallback);
수동 Camera.stopPreview();
각 호출하기 전에 전화를 시도하고 작동이 코드에 따르면
//waiting for preview thread to complete before clearing of the buffers
mPreviewThreadWaitLock.lock();
while (mPreviewThreadRunning) {
LOGI("runframethread: waiting for preview thread to complete.");
mPreviewThreadWait.wait(mPreviewThreadWaitLock);
LOGI("initPreview: old preview thread completed.");
}
mPreviewThreadWaitLock.unlock();
: 는 인터넷 검색의 몇 시간 후에 나는 마지막 로그 메시지를 게시 네이티브 코드를 발견했다.
UPDATE
그것은 일반적으로 당신이 중지 미리보기 사진을 찍을 수 없기 때문에 새로운 카메라 드라이버 장치에 Camera.stopPreview();
실 거예요 작품에 해당 솔루션을 나타납니다. 대신 Camera.stopPreview();
을 사용하는 대신 을 mCamera.setPreviewCallback(null);
으로 제거하면 이전 및 새로운 카메라 드라이버로 테스트 한 모든 장치에서 작동합니다.
mCamera.setPreviewCallback(null);
camera.takePicture(null, null, null, pictureCallback);