try {
camera.setPreviewDisplay(surfaceHolder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 開始預覽
camera.startPreview();
上面兩行代碼不能放在初始化的Camera裡面,需要放在surfaceChanged()和surfaceCreated()方法内!!
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height){
try {
camera.setPreviewDisplay(surfaceHolder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 開始預覽
camera.startPreview();
}
@Override
public void surfaceCreated(SurfaceHolder holder){
// surface被建立時打開攝像頭
initCamera();
try {
camera.setPreviewDisplay(surfaceHolder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 開始預覽
camera.startPreview();
}