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

} 
} 

общественного логический invokeAction (интермедиат действие) { System.out.println ("Действие ==" + действие); boolean handled = super.invokeAction (действие);

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

 Смежные вопросы

  • Нет связанных вопросов^_^