2013-08-24 100 views
0

定製相機應用程序和Samsung Galaxy S4手機有問題。有時,當應用程序拍攝照片時,S4手機可以一次拍攝多張照片。它偶爾會發生相同的代碼爲其他設備工作就好了。以下是拍攝圖片的代碼:Android Galaxy S4相機問題

Parameters params = camera.getParameters(); 
params.setRotation(rotation); 
camera.setParameters(params); 
camera.autoFocus(new Camera.AutoFocusCallback() { 

    @Override 
    public void onAutoFocus(boolean success, Camera camera) { 
     camera.takePicture(shutterCallback, null, PreviewCallback.this); 
    } 
}); 

@Override 
public void onPictureTaken(byte[] data, Camera camera) { 
    pictureCallback.onPictureTaken(previewData, data); 
    camera.startPreview(); 
    Parameters params = camera.getParameters(); 
    params.setRotation(rotationOrig); 
    camera.setParameters(params); 
} 

旋轉僅用於正確的exif旋轉標籤。

回答

3

contract for Camera.AutoFocusCallback.onAutoFocus不認爲它會在camera.autoFocus()調用後觸發一次。所以,我會簡單地添加一個布爾變量,例如

camera.autoFocus(new Camera.AutoFocusCallback() { 

    boolean once = true; 
    @Override 
    public void onAutoFocus(boolean success, Camera camera) { 
    if (once && success) { 
     camera.takePicture(shutterCallback, null, PreviewCallback.this); 
     once = false; 
     } 
    } 
}); 

BTW,你應該檢查的第一個參數值 - 如果自動對焦失敗,你可能不希望採取擺在首位的圖片。

+0

謝謝,我會嘗試 – nemezis

+1

這工作就像一個魅力! – nemezis