-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( 「行動==」 +動作); boolean handled = 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 [] =快照videoControl.getSnapshot(空) ; 請幫我解決我犯的錯誤。
在此先感謝

+3

爲什麼要這樣做?這聽起來像一個非常粗略的要求。 – 2012-04-14 05:23:40

+3

關於您的編輯,「這是我的應用程序的必要條件」是不夠的,並且強化了我的觀點,即您爲了不道德/不道德的目的而這樣做。請證明我錯了。 – 2012-04-14 05:45:52

+2

不知道這是SO用戶在海報上傳遞道德判斷的工作。自動拍照有很多合法用途。時間推移攝影是一個想到的問題。 – donturner 2012-04-14 21:16:43

回答

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"); 
相關問題