Search code examples
javamobilejava-melwuit

How to capture images using LWUIt VIdeoComponent


I have tried using MediaComponent, but since it is now deprecated it wont be good moving forward. Also i was not able to get it to re-size to full screen on the form. I am trying to use VideoComponent to capture a screen shot in an S40 device. I cant find how to instantiate the VideoComponent properly for capturing an image and not playing a video.


Solution

  • You can use VideoComponent for capturing an image.

    First, to instantiate the VideoComponent, you need to create a native peer:

    VideoComponent videoComponent = VideoComponent.createVideoPeer("capture://video");
    Player player = (Player) videoComponent.getNativePeer();
    player.realize();
    VideoControl videoControl = (VideoControl) player.getControl("VideoControl");
    

    To capture the image, you have to start video component and use getSnapshot of Video Control:

    videoComponent.start();
    videoControl.getSnapshot(null);
    

    If you want to resize the video component to full screen you can use:

    videoComponent.setFullScreen(false);
    

    Other posibility is:

    videoComponent.setPreferredH(Display.getInstance().getDisplayHeight());
    videoComponent.setPreferredW(Display.getInstance().getDisplayWidth());