我是BlackBerry应用程序开发的新手,并试图制作一个简单的应用程序来打开我的闪光灯作为火炬。我知道有几个应用程序已经这样做了,但我想尝试自己做。
我安装了eclipse并添加了所有必要的内容以使我的开发环境运行。我还成功创建了股票标准hello world应用程序。
然而,我正在努力寻找如何做到这一点。我一直在阅读API文档并开始使用FlashControl
,VideoControl
和SnapshotControl
。
然而,这些似乎没有公开这样做的方法。
我知道通过摄像机,我可以选择并打开闪光灯,这正是我想模仿的。
我到目前为止使用的代码似乎只是设置相机闪光灯强制打开:
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);
答案 0 :(得分:3)
我已经解决了与闪光控制相关的问题
根据我在我最近的应用程序中使用闪光控制
相机。
以下是我使用的代码:
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);
}
}
这个逻辑与Pinkesh同时作为我的同事实施
答案 1 :(得分:1)
OS 5.0中提供的FlashControl
类允许您打开闪光灯。只需使用FORCE标志在播放器上设置闪光控制:
FlashControl flash = (FlashControl)player.getControl("javax.microedition.amms.control.camera.FlashControl");
if(flash!=null) {
try {
flash.setMode(FlashControl.FORCE);
} catch(IllegalArgumentException iae){}
}
为此,您可能需要打开播放器来录制视频或拍照。为了简洁起见,我没有在我的代码中显示,但是here你可以阅读教程。如果您的应用只是打开闪光灯,您可能希望隐藏视频字段。
答案 2 :(得分:0)
尝试这样的事情
LED.setState(LED.STATE_ON); // for LED
Backlight.enable(true); // for Screen
this.setMode(FlashControl.ON); // for flash light.
或者导入此包
package lsphone.flash.microfireps;