Sto provando a creare un'applicazione che accede alla videocamera Android, ottiene una cornice (immagine), la elabora, quindi riavvia il processo, tutto ciò fornendo un'anteprima uniforme sullo schermo.setOneShotPreviewCallback non richiamare il mio metodo
Faccio questo ottenendo un frame chiamando camera.setOneShotPreviewCallback(...)
, elaborando i dati ricevuti nel mio callback, quindi chiamando setOneShotPreviewCallback
di nuovo.
Il problema è che non riesco ad avviare il processo inserendo setOneShotPreviewCallback
nella funzione onResume()
dell'attività principale. Se lo faccio, il mio callback non viene mai chiamato.
Vedere il seguente codice di prova:
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);
}
});
}
Quando l'applicazione viene avviata, la richiamata non viene mai chiamato, ma non appena si preme il pulsante, ottengo un callback.
Ho provato a utilizzare setOneShotPreviewCallback
nella mia classe CameraPreview
, dopo camera.startPreview();
, ma il mio metodo non è stato ancora chiamato.