【问题标题】:How to capture images using LWUIt VIdeoComponent如何使用 LWUIt VIdeoComponent 捕获图像
【发布时间】:2011-10-12 15:20:07
【问题描述】:

我尝试过使用MediaComponent,但由于它现在已被弃用,因此向前推进并不好。此外,我无法将其重新调整为表格上的全屏。我正在尝试使用VideoComponent 在 S40 设备中捕获屏幕截图。我找不到如何正确实例化 VideoComponent 以捕获图像而不是播放视频。

【问题讨论】:

  • 我最终使用了 MediaComponent,但 javadocs 说下一个版本将不支持它。
  • 你试过我的回答了吗?
  • @frayab 我还没有尝试你的答案,我已经使用了媒体组件,因为它解决了我的问题,而你当时还没有回答。我最终搁置了该功能,稍后将在添加该功能时尝试。

标签: java mobile java-me lwuit


【解决方案1】:

您可以使用 VideoComponent 来捕获图像。

首先,要实例化 VideoComponent,您需要创建一个原生 peer:

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

【讨论】:

  • 我最终也使用了它,但与原生相机相比,图像质量很差。我尝试在调用 getSnapshot 时添加大小,但遇到了各种错误。有什么帮助吗?
【解决方案2】:

现在VideoComponent 主要是为播放而设计的,并不能很好地用于捕捉。我们将在不久的将来尝试对其进行改进,使其更加灵活。从MediaComponent 迁移到VideoComponent 相对容易,所以应该不是问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多