我有一個畫面需要在後臺服務......該服務在三種模式下工作:拍攝照片不起作用
- 前凸輪
- 返回凸輪
- 回凸輪與閃
前兩個工作很大,但使閃光燈相機參數時,沒有像在「Camera.PictureCallback」返回...... 事實上回調永遠不會觸發。
閃光燈閃光,一切似乎沒問題,但沒有收到圖像。
這是我onStartCommand:
public int onStartCommand(Intent intent, int flags, int startId) {
try {
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_TOAST,
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
PixelFormat.TRANSLUCENT
);
params.gravity = Gravity.TOP | Gravity.START;
params.width = 1;
params.height = 1;
params.x = 0;
params.y = 0;
sv = new SurfaceView(getApplicationContext());
windowManager.addView(sv, params);
SurfaceHolder sHolder = sv.getHolder();
sHolder.addCallback(this);
} catch (Exception e) {
e.printStackTrace();
}
return START_NOT_STICKY;
}
這是我的相機初始化代碼:
myCamera = Camera.open();
if (myCamera != null) {
myCamera.setPreviewDisplay(sv.getHolder());
Camera.Parameters parameters = myCamera.getParameters();
parameters.setFlashMode(FLASH_MODE_ON);
parameters.setPictureFormat(ImageFormat.JPEG);
parameters.setJpegQuality(70);
// set camera parameters
myCamera.setParameters(parameters);
myCamera.startPreview();
myCamera.setErrorCallback(errorCallBack);
myCamera.takePicture(mShutter, null, mCall);
}
如果是這樣,那麼你可能想要設置閃光模式爲:FLASH_MODE_ON而不是FLASH_MODE_AUTO。 – Barns
是的,代碼被稱爲... 「FLASH_MODE」是一個變量集從捆綁額外...並設置爲「FLASH_MODE_ON」當啓用閃光燈 – Abuzaid
我有3個案例: 前凸輪(FLASH_MODE_OFF) - 主凸輪(FLASH_MODE_AUTO) - Main + Flash(FLASH_MODE_ON) – Abuzaid