Java 如何使用LWUIt VIdeoComponent捕获图像

Java 如何使用LWUIt VIdeoComponent捕获图像,java,mobile,java-me,lwuit,Java,Mobile,Java Me,Lwuit,我曾经尝试过使用MediaComponent,但由于它现在已被弃用,所以继续使用下去并不好。另外,我也无法在表单上将其重新调整为全屏大小。我正在尝试使用VideoComponent在S40设备中捕获屏幕快照。我找不到如何正确地实例化视频组件,以便捕获图像而不播放视频。目前视频组件主要是为播放而设计的,在捕获时效果并不理想。我们将在不久的将来对其进行改进,使其更加灵活。从MediaComponent迁移到VideoComponent相对比较容易,所以应该不会有问题。您可以使用VideoCompon

我曾经尝试过使用
MediaComponent
,但由于它现在已被弃用,所以继续使用下去并不好。另外,我也无法在表单上将其重新调整为全屏大小。我正在尝试使用
VideoComponent
在S40设备中捕获屏幕快照。我找不到如何正确地实例化
视频组件
,以便捕获图像而不播放视频。

目前
视频组件
主要是为播放而设计的,在捕获时效果并不理想。我们将在不久的将来对其进行改进,使其更加灵活。从
MediaComponent
迁移到
VideoComponent
相对比较容易,所以应该不会有问题。

您可以使用VideoComponent拍摄图像

首先,要实例化VideoComponent,您需要创建一个本地对等点:

VideoComponent videoComponent = VideoComponent.createVideoPeer("capture://video");
Player player = (Player) videoComponent.getNativePeer();
player.realize();
VideoControl videoControl = (VideoControl) player.getControl("VideoControl");
要捕获图像,必须启动视频组件并使用视频控件的getSnapshot:

videoComponent.start();
videoControl.getSnapshot(null);
如果要将视频组件调整为全屏,可以使用:

videoComponent.setFullScreen(false);
其他可能性是:

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

我最终使用了MediaComponent,但javadocs说它在下一个版本中将不受支持。你尝试过我的答案吗?@frayab我还没有尝试过你的答案,我已经使用了MediaComponent,因为它解决了我的问题,而你当时还没有回答。我最终搁置了该功能,稍后添加该功能时将尝试它。我最终也使用了该功能,但与本机相机相比,图像质量较差。我试图在调用getSnapshot时添加大小,但遇到了各种各样的错误。有什么帮助吗?