-4

私は Blackberry 開発者で、Blackberry カメラ アプリケーションを作成しています。しかし、クリックすると写真を撮ります。ユーザーの操作なしで写真を撮ることができます。私のアプリケーションには必要です。私に提案してコードを送ってください。私はこのプロセスを進めています。

   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;                

}

このコードを使用して、カメラが呼び出されたときに自動で写真を撮りたいのですが、自動で写真を撮っていません。ここで null 値を取得しています byte[] snapshot = videoControl.getSnapshot(null); 私が間違っているところを助けてください。
前もって感謝します

4

1 に答える 1

3

デフォルトのカメラ アプリケーションを呼び出すのではなく、アプリケーション内からカメラをインスタンス化する必要があります。これが完了したら、 を呼び出してプログラムで写真を撮ることができます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");
于 2012-04-14T21:28:27.090 に答える