Domanda

Sto sviluppando un'app che prende un'anteprima della fotocamera del dispositivo e analizza il feed. Posso creare l'anteprima della fotocamera, ma non riesco a far regolare automaticamente la fotocamera.

So che l'hardware sottostante è possibile di eseguire un focus automatico perché l'app nativa BlackBerry Camera risponde alla chiave "scatta foto" mediante focalizzando automaticamente l'immagine prima di scattare la foto.

Tuttavia, non sto cercando di scattare una foto, sto cercando di scansionare continuamente il feed di input per un codice a barre.

Ecco il mio codice:

Player _player = Manager.createPlayer("capture://video");
_player.realize();
_player.start();
_vc = (VideoControl) _player.getControl("VideoControl");

//this is added to the screen
_viewFinder = (Field) _vc.initDisplayMode(
    VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field");

FocusControl focusControl = (FocusControl) _player.getControl("javax.microedition.amms.control.camera.FocusControl");

//this has no effect
focusControl.setFocus(FocusControl.AUTO);

Ho testato BlackBerry Storm 9500 e Bold 9700 entrambi in esecuzione OS5.

È stato utile?

Soluzione 2

L'unico modo per focalizzare la fotocamera in OS5 è utilizzare videocontrol.getSnapShot (). Non c'è altro modo.

Altri suggerimenti

Prova questo

this.player = Manager.createPlayer("capture://video");
this.player.realize();
this.videoControl = ((VideoControl)this.player.getControl("VideoControl"));
this.field = ((Field)this.videoControl.initDisplayMode(0, "net.rim.device.api.ui.Field"));
this.videoControl.setVisible(true); 
this.player.start();
try {
        //get focuscontrol
      FocusControl focusControl = (FocusControl)getCurrentObject().player.getControl("javax.microedition.amms.control.camera.FocusControl");
      if (focusControl == null) {
          //no focus control
        Log.Debug("Focus control not available.");
      } else {
        if (focusControl.isMacroSupported()) {
            //setting macro
          Log.Debug("Setting macro mode.");
          focusControl.setMacro(true);
        } else {
            //no macro
          Log.Debug("Macro mode not supported.");
        }
        if (focusControl.isAutoFocusSupported()) {
            //setting autofocus
          Log.Debug("Using autofocus.");
          focusControl.setFocus(-1000);
        } else {
            //no autofocus
          Log.Debug("Autofocus not supported.");
        }
      }

Per me funziona !!!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top