【问题标题】:How to take picture from camera in blackberry without user interaction? [closed]如何在没有用户交互的情况下从黑莓中的相机拍照? [关闭]
【发布时间】:2012-04-14 05:20:04
【问题描述】:

我是一名黑莓开发人员,我创建了一个黑莓相机应用程序。 但是我点击时拍照是否可以在没有任何用户交互的情况下拍照。这对我的应用程序是必需的。 请建议我并将代码发送给我,我正在经历这个过程。

   public void doTakePicture(){
    try
    {

        System.out.println("Inside doTakePicture");
      Invoke.invokeApplication(Invoke.APP_TYPE_CAMERA,new CameraArguments());
      player = javax.microedition.media.Manager.createPlayer("capture://video");
      player.realize();
      player.start();
      videoControl = (VideoControl) player.getControl("VideoControl");

      if(videoControl!=null)
      {
          Field videoField = (Field) videoControl.initDisplayMode (VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field");
          videoControl.setDisplayFullScreen(true);
          videoControl.setVisible(true);
          System.out.println("videoControl=="+videoControl);
          if(videoField != null)
          {
              add(videoField);
          }

      } 


    }



catch(Exception ex)
 {
    System.out.println(ex);

 }
}

public boolean invokeAction(int action) { System.out.println("Action=="+action); 布尔处理 = super.invokeAction(action);

System.out.println("handled=="+handled);
System.out.println("Inside Invoke Camera");

if(handled==false)
{
    System.out.println("Inside First If Blog"); 
    if(action == ACTION_INVOKE)
    {   
        System.out.println("Inside Second If Blog");
        try
        {    
            System.out.println("If Blog of invoke Action");


            System.out.println("videoControl11=="+videoControl);
            byte[] snapshot = videoControl.getSnapshot(null);
            System.out.println("snapshot=="+snapshot);
        }
        catch(Exception e)
        {
            Dialog.alert(e.toString());
        }
    }
}           
return handled;                

}

使用此代码,我想尝试在调用相机时自动拍照但不自动拍照,我在这里得到一个空值 byte[] snapshot = videoControl.getSnapshot(null); 请帮助我在哪里犯错。
提前致谢

【问题讨论】:

  • 为什么要这样做?这听起来像是一个非常粗略的要求。
  • 关于您的编辑,“这对我的应用程序来说是必要的”是不够的,并强化了我的看法,即您这样做是出于不道德/不道德的目的。请证明我错了。
  • 不确定 SO 用户的工作是对海报进行道德判断。自动拍照有很多合法用途。延时摄影是一种浮现在脑海中的照片。

标签: blackberry blackberry-simulator blackberry-eclipse-plugin


【解决方案1】:

您需要在应用程序中实例化相机,而不是调用默认的相机应用程序。完成此操作后,您可以通过调用VideoControl.getSnapshot 以编程方式拍摄照片。示例:

Player player = Manager.createPlayer("capture://video");
player.realize();
player.start();
VideoControl videoControl = (VideoControl) player.getControl("VideoControl");

//this will take a photo
byte[] snapshot = videoControl.getSnapshot("encoding=jpeg&width=640&height=480&quality=superfine");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多