Не удается сделать снимок с помощью камеры на польском языке J2ME?

Я разрабатываю мобильное приложение на J2ME. Сейчас конвертирую на J2ME Polish. В своем приложении я делаю снимок с помощью камеры мобильного телефона. Он отлично работает в J2ME. Но в 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 polish videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,this) здесь это относится к VideoCanvas (which extends from javax.microedition.lcdui.Canvas). Но он выбрасывает "IllegalArgumentException - контейнер должен быть холстом" вроде этого. Как решить вопрос?


person SIVAKUMAR.J    schedule 16.11.2011    source источник
comment
предоставьте операторы импорта, используемые в VideoCanvas.java - без них никто бы никогда не узнал, относится ли Canvas, используемый в предложении extends, к javax.microedition.lcdui.Canvas или к какому-либо классу из другого пакета, который просто случайно имеет такое же имя   -  person gnat    schedule 16.11.2011
comment
Привет, я публикую только свою часть фрагмента кода. Я уже импортирую следующие javax.microedition.lcdui.Canvas, javax.microedition.media.control.VideoControl, но я забыл добавить в свой пост, поэтому, пожалуйста, простите мои ошибки. Приглашаем всех поделиться ценными идеями.   -  person SIVAKUMAR.J    schedule 19.11.2011
comment
@ SIVAKUMAR.J Мне нужно открыть камеру, чтобы сделать снимок с помощью J2ME polish, может посоветовать мне, что делать дальше.   -  person Likith Ts    schedule 11.01.2017


Ответы (1)


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

Измените свой класс Display на библиотеку Polish, и ваша проблема будет решена.

person Lucifer    schedule 17.11.2011
comment
Я добавляю дополнительный пункт в свой вопрос, добавляя комментарии. Пожалуйста, войдите в него, дайте мне ценные идеи. Это будет полезно для меня. - person SIVAKUMAR.J; 19.11.2011