私は、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
クラスの中でcamera.startPreview();
の後にsetOneShotPreviewCallback
を使用しようとしましたが、それでも私のメソッドは呼び出されませんでした。