È possibile focalizzare la fotocamera utilizzando l'API BlackBerry OS5?
-
28-10-2019 - |
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.
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 !!!