我試圖創建一個訪問Android相機,獲取框架(圖像),處理它,然後重新啓動該過程的應用程序,同時在屏幕上提供平滑預覽。setOneShotPreviewCallback不回撥我的方法
我這樣做是通過調用camera.setOneShotPreviewCallback(...)
來獲得一個幀,處理在我的回調中收到的數據,然後再次調用setOneShotPreviewCallback
。
問題是,我不能通過將setOneShotPreviewCallback
放在主要活動的onResume()
函數中來啓動該過程。如果我這樣做,我的回調從未被調用。
請參見下面的測試代碼:
public void onResume() {
super.onResume();
camera = getCameraInstance();
cameraPreviewSurface = new CameraPreview(this, camera);
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.removeAllViews();
preview.addView(cameraPreviewSurface);
camera.setOneShotPreviewCallback(cameraPreviewCallback);
Button button = (Button) findViewById(R.id.button_capture);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
camera.setOneShotPreviewCallback(cameraPreviewCallback);
}
});
}
應用程序啓動時,回調不會被調用,但只要按下按鈕,我得到一個回調。
我已經嘗試在我的CameraPreview
類中使用setOneShotPreviewCallback
,在camera.startPreview();
之後,但仍然沒有調用我的方法。