-4

저는 블랙 베리 개발자입니다. 블랙 베리 카메라 응용 프로그램을 만듭니다. 그러나 나는 클릭 할 때 사진을 찍는다. 사용자 상호 작용없이 사진을 찍는 것이 가능하다. 그것은 내 신청서에 필요하다. 제게 제안 해주세요. 코드를 보내주세요.이 과정을 밟고 있습니다.사용자 상호 작용없이 블랙 베리 카메라에서 사진을 찍는 방법?

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

} 
} 

공개 부울 invokeAction (INT 동작) { 에서 System.out.println ("액션 =="+ 행동); 부울 처리됨 = super.invokeAction (작업); 내가 카메라를 호출하지만, 자동으로 사진을 촬영하고 내가 여기에 null 값을 얻고있다하지 않을 때 자동으로 사진을 찍을 시도하려는이 코드를 사용

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;     

}

바이트 [] 스냅 샷 = videoControl.getSnapshot (널) ; 내가 실수하고있는 곳에서 도와주세요.
미리 감사드립니다.

+3

왜이 작업을 수행 하시겠습니까? 그것은 꽤 스케치 요구 사항처럼 들리 네요. –

+3

귀하의 편집과 관련하여 "내 신청서에는 반드시 필요합니다"는 충분하지 않으며 비 윤리적/비도덕적 인 목적으로이를 수행하고 있다고 생각합니다. 제 잘못을 증명해주세요. –

+2

SO 사용자가 포스터에 도덕적 판단을 전달하는 것은 확실하지 않습니다. 자동 사진 촬영에는 많은 합법적 인 용도가 있습니다. 시간 경과 사진은 마음에 샘솟는 사진입니다. – donturner

답변

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