blackberry - 在 Blackberry 上打开 Flash as Light

标签 blackberry java-me blackberry-jde

我是 BlackBerry 应用程序开发的新手,正在尝试制作一个简单的应用程序来将我的手电筒作为手电筒打开。我知道已经有几个应用程序可以做到这一点,但我想尝试自己做。

我已经安装了 eclipse 和所有必要的添加来运行我的开发环境。我还成功创建了标准的 hello world 应用程序。

然而,我正在努力找出如何做到这一点。我一直在阅读 API 文档并开始使用 FlashControl , VideoControlSnapshotControl .
然而,这些似乎并没有公开这样做的方法。

我通过摄像机知道我可以选择选项并打开闪光灯,这正是我想要模仿的。

到目前为止,我使用的似乎只是将相机闪光灯设置为强制开启的代码是:

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

最佳答案

与闪光灯控制相关的问题已由我解决

按照我在最近的应用程序上使用闪光灯控制

相机。

这是我使用的代码:

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 同时实现

在公司

关于blackberry - 在 Blackberry 上打开 Flash as Light,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4253927/

相关文章:

android - 适用于移动设备或特定于移动设备的 Web 应用程序

java - j2me :question about Landmark class

blackberry - 如果两个进程都接收到对同一个对象的引用,他们会在 java 中同步它吗?

file - 如何确定 IMAP 邮件中附件的大小

blackberry - ListField 中文本右侧的复选框

javascript - 使用 useragent 对 Blackberry 设备进行分类

android - 移动编程

Blackberry - 自定义 EditField 光标

blackberry - 是否可以在 blackberry OS 6,7 和 7.1 中运行 blackberry OS 10

service - 在 java blackberry 中运行定期后台服务的最佳方法