微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 如何在FireMonkey(FMX,FM3)中显示流畅的视频?

有没有人想出如何在FireMonkey应用程序,HD或3D中显示流畅的视频(即一系列位图)?在VCL中,您可以从一个线程写入画布,这将完美地工作,但这在FMX中不起作用.更糟糕的是,显然唯一可靠的方法是使用T Image,这似乎是从主线程更新(打开菜单和视频暂时冻结).我可以找到的所有EMB示例都可以从主线程写入timage,或者使用Synchronize().这些限制使FMX无法用于体面的视频显示,因此我正在寻找黑客或可能绕过FMX.我使用XE5 / C但欢迎任何建议.目标操作系统是 Windows 7和 Windows 7. OS X.谢谢!

解决方法

如何在表单上放置一个TPaintBox来保存视频.在OnPaint方法中,您只需将下一帧绘制到paintBox画布.现在在表单上放置一个TTimer,将间隔设置为所需的帧速率.在计时器的OnTimer事件中,只需编写paintBox1.repaint

无论程序正在做什么,这都应该为您提供常规帧.

为了更加安全,您可以在OnTimer事件中增加帧编号.现在,在paintBox paint方法中,您可以知道要绘制哪个框架.这意味着如果其他东西调用了paint方法和定时器,你将不会跳帧 – 你最终会重新绘制相同的帧以进行额外的OnPaint调用.

我使用它来进行蚂蚁选择,尽管我更进一步使用覆盖的画布,因此我可以独立绘制选择和底层的绘图框画布,以便在选择更改时无需重新绘制主画布.这需要调用API,但我想你不需要它,除非你做的是透明色的视频.

原文地址:https://www.jb51.cc/c/118404.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐