gpt4 book ai didi

java - 是否可以使用 BlackBerry OS5 API 对相机进行对焦?

转载 作者:行者123 更新时间:2023-11-29 06:06:27 33 4
gpt4 key购买 nike

我正在开发一个应用程序,它可以预览设备的摄像头并分析该提要。我可以创建相机预览,但无法让相机自动调整焦距。

我知道底层硬件可以执行自动对焦,因为 native BlackBerry 相机应用程序通过在拍照前自动对焦图像来响应“拍照”媒体键。

但是,我不是要拍照,而是要连续扫描输入提要中的条形码。

这是我的代码:

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);

我已经在运行 OS5 的 BlackBerry Storm 9500 和 Bold 9700 上进行了测试。

最佳答案

试试这个

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.");
}
}

它对我有用!!!

关于java - 是否可以使用 BlackBerry OS5 API 对相机进行对焦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8391563/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com