2011-11-16 5 views
0

Я разрабатываю мобильное приложение в J2ME. Теперь я конвертирую его в J2ME Polish. В моем приложении я фиксирую изображение с помощью камеры в мобильном телефоне. Он отлично работает в J2ME. Но в J2ME Polish это не работает. Я не могу это разрешить.Невозможно сделать снимок с помощью камеры в J2ME Polish?

приведен фрагмент кода приведен ниже

import javax.microedition.lcdui.Canvas; 
import javax.microedition.media.control.VideoControl; 
//... 

public class VideoCanvas extends Canvas { 
    // private VideoMIDlet midlet; 
    // Form frm 

Form frm=null; 

    public VideoCanvas(VideoControl videoControl) {  

     int width = getWidth(); 
     int height = getHeight(); 
     // this.midlet = midlet; 

     //videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this); 

     //Canvas canvas = StyleSheet.currentScreen; 
     //canvas = MasterCanvas.instance; 



     videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,this); 

     try { 
      videoControl.setDisplayLocation(2, 2); 
      videoControl.setDisplaySize(width - 4, height - 4); 
     } catch (MediaException me) {} 
     videoControl.setVisible(true); 



    } 

    public VideoCanvas(VideoControl videoControl,Form ff) {  

    frm=ff; 
     int width = getWidth(); 
     int height = getHeight(); 
     // this.midlet = midlet; 

     Ticker ticker=new Ticker("B4 video controll init"); 
     frm.setTicker(ticker); 

     //Canvas canvas = StyleSheet.currentScreen;   




     videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,this); 

     ticker=new Ticker("after video controll init"); 
     frm.setTicker(ticker); 

     try { 
      videoControl.setDisplayLocation(2, 2); 
      videoControl.setDisplaySize(width - 4, height - 4); 
     } catch (MediaException me) {} 
     videoControl.setVisible(true); 



     ticker=new Ticker("Device not supported"); 
     frm.setTicker(ticker); 


    } 

    public void paint(Graphics g) { 
     int width = getWidth(); 
     int height = getHeight(); 

     g.setColor(0x00ff00); 
     g.drawRect(0, 0, width - 1, height - 1); 
     g.drawRect(1, 1, width - 3, height - 3); 
    } 

} 

В нормальном j2me выше код работает правильно. Но в j2me польский videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,this) здесь это относится к VideoCanvas (which extends from javax.microedition.lcdui.Canvas). Но он выбрасывает «IllegalArgumentException - контейнер должен быть холстом». Как решить проблему?

+1

Просьба предоставить инструкции импорта, используемые в _VideoCanvas.java_ - без них никто бы никогда не знал, используется ли 'Canvas' в выражении extends в качестве' javax.microedition.lcdui.Canvas' или какого-либо класса из другого пакета, который только что происходит с имеют то же имя – gnat

+0

Привет. Я только отправлю свою часть кода. Я уже импортирую следующий «javax.microedition.lcdui.Canvas, javax.microedition.media.control.VideoControl». Но я забыл добавить в свой пост. Поэтому, пожалуйста, простите мои ошибки. Все могут дать ур ценные идеи. –

+0

@ SIVAKUMAR.J Мне нужно открыть камеру для захвата изображения с помощью J2ME-лака, который может предложить мне, как переносить вперед. –

ответ

3

Класс отображения отличается в J2ME & J2ME Polish. Я считаю, что вы получаете эту ошибку из-за только класса Display.

Измените свой класс дисплея на библиотеку польского языка &, и ваша проблема будет решена.

+0

Я добавляю дополнительную точку в свой вопрос, добавляя комментарии. Поэтому, пожалуйста, обращайтесь к нему, дайте мне ур ценные идеи. Это будет полезно для меня. –

+0

Спасибо @ SIVAKUMAR.J – Lucifer