Activar Flash como Luz en Blackberry
java-me blackberry-jde (3)
el problema relevante para el control del flash ha sido resuelto por mí
como estoy usando el control del flash en mi reciente aplicación en
cámara.
Aquí está el código que utilicé:
public Camera(int j)
{
k = j;
try
{
Player player = Manager.createPlayer("capture://video");
player.realize();
_videoControl = (VideoControl) player.getControl("VideoControl");
flashControl = new FlashControl()
{
public void setMode(int mode)
{
// TODO Auto-generated method stub
}
public boolean isFlashReady()
{
// TODO Auto-generated method stub
return false;
}
public int[] getSupportedModes()
{
// TODO Auto-generated method stub
return null;
}
public int getMode()
{
// TODO Auto-generated method stub
return 0;
}
};
flashControl = (FlashControl) player
.getControl("javax.microedition.amms.control.camera.FlashControl");
try {
if (k == 1)
{
flashControl.setMode(FlashControl.AUTO);
Dialog.alert("slect Auto");
}
else if (k == 2)
{
flashControl.setMode(FlashControl.OFF);
Dialog.alert("slect No");
}
}
catch (Exception e)
{
System.out.println(e);
}
if (_videoControl != null)
{
_videoField = (Field) _videoControl.initDisplayMode(
VideoControl.USE_GUI_PRIMITIVE,
"net.rim.device.api.ui.Field");
// _videoControl.setDisplaySize(330, 420);
// _videoControl.setDisplayLocation(getContentWidth(),
// getContentHeight());
_videoControl.setVisible(true);
add(_videoField);
capture = new ButtonField("Capture", Field.FIELD_HCENTER);
capture.setChangeListener(this);
add(capture);
player.start();
}
}
catch (Exception e)
{
System.out.println(e);
}
}
esta lógica se ha implementado simultáneamente con Pinkesh como mi compañera
en la compañía
Soy nuevo en el desarrollo de aplicaciones de BlackBerry e intento hacer una aplicación simple para encender mi flash como una antorcha. Sé que ya hay varias aplicaciones que hacen esto, pero me gustaría intentarlo por mi cuenta.
He instalado eclipse y todo lo necesario para ejecutar mi entorno de desarrollo. También he creado con éxito la aplicación estándar estándar hello world.
Sin embargo, estoy luchando por saber cómo hacer esto. He estado leyendo la documentación de API y comencé a jugar con FlashControl
, VideoControl
y SnapshotControl
.
Sin embargo, estos no parecen exponer los métodos para hacer esto.
Sé a través de la cámara de video que puedo ir a las opciones y encender la luz del flash y esto es exactamente lo que intento imitar.
El código que he utilizado hasta ahora, que parece simplemente configurar el flash de la cámara para forzarlo, es:
Player p = javax.microedition.media.Manager.createPlayer("capture://video");
p.realize();
p.start();
FlashControl flashControl = (FlashControl) p.getControl("javax.microedition.amms.control.camera.FlashControl");
flashControl.setMode(FlashControl.FORCE);
Pruebe algo como esto
LED.setState(LED.STATE_ON); // for LED
Backlight.enable(true); // for Screen
this.setMode(FlashControl.ON); // for flash light.
o bien importa este paquete
package lsphone.flash.microfireps;
La clase FlashControl
, disponible desde OS 5.0, le permite encender el flash. Simplemente configure un control de flash en su reproductor con la bandera de FUERZA:
FlashControl flash = (FlashControl)player.getControl("javax.microedition.amms.control.camera.FlashControl");
if(flash!=null) {
try {
flash.setMode(FlashControl.FORCE);
} catch(IllegalArgumentException iae){}
}
Para que esto funcione, es probable que necesites abrir un reproductor para grabar un video o tomar una foto. No mostraré eso en mi código por razones de brevedad, pero aquí puede leer un tutorial. Si su aplicación solo trata de encender el flash, probablemente le gustaría tener el campo de video oculto.