0

我正在开发一个使用相机的应用程序......我的应用程序的要求是:

我必须从“已经运行”的后台应用程序中拍照;但我必须将相机应用程序保持在后台......意味着我想在不干扰当前前台应用程序的情况下捕获图片。

而且没有发出任何相机快门声....???

这可能吗?如果我们调用相机应用程序 - 通过 Invoke.invokeApplication(Invoke.APP_TYPE_CAMERA, new CameraArguments())............


感谢你们所有人......特别是@donturner ......很抱歉很晚才回来写这篇文章。

经过一些尝试,我发现如果不将相机屏幕置于前台,我们就无法捕捉到快照。

1)如果我们将相机屏幕置于背景或

2) 将 VideoControl 的类对象的可见性更改为 false...

_videoControl.setVisible(false);

那么......将不会收到任何字节(空值)

byte[] imageBytes = _videoControl.getSnapshot( encoding );   

那么这个功能有什么用....而我们使用视频控制类来捕捉快照或视频???

_videoControl.setVisible(true);

我尝试了一个不同的技巧......

  • 在将相机屏幕置于前台以关闭设备的背光之前,我调用了一个线程。

  • 然后不久之后,我将相机屏幕带到前台并捕捉快照。

我在 BB Flip (4.6) 和 Storm (5.0) 设备上测试了上述技巧,即使设备背光关闭,它也能成功拍摄快照。

但现在我陷入了其他一些问题……那就是相机快门声。我尝试了很多,但无法成功将其静音....

正如@Michael Donohue 建议的那样,我尝试过..

private void muteThread() {
        Thread t = new Thread(new Runnable() {
            public void run() {
                try {
                    int i = 0;
                    while (i < 50) {
                        Audio.setVolume(0);
                        try {
                            Thread.sleep(50);
                        } catch (InterruptedException e) {                      
                        }
                        i++;
                    }
                    System.out.println("\n\n >>>>> End of Mute Thread. <<<< \n\n");
                } catch (Exception e) {
                }
            }
        });
        t.start();
    }

但它不起作用......如果不能做到这一点,那么这些应用程序如何提供这种设施......以及他们使用的功能类型。

http://appworld.blackberry.com/webstore/content/97648/?lang=en

http://appworld.blackberry.com/webstore/content/79083/?lang=en

4

1 回答 1

0

如果不向用户显示相机预览提要,您就无法以编程方式拍摄照片,因此您至少需要将相机预览表面带入 UI 前景。

于 2012-07-09T10:54:29.860 回答