【发布时间】:2023-03-03 06:02:19
【问题描述】:
我尝试使用 Delphi firemonkey 的 LibVLC dll (www.videolan.org) 输出视频但没有成功,我发现的唯一功能是 libvlc_media_player_set_hwnd(p_mi,Handle);其中句柄是 Windows 句柄。
但是在我的情况下,我想在使用 Firemonkey(FMX 库)创建的 3D 表面上运行视频。 Tlayer3d 或 Tlayout3D 组合不公开任何可直接用于 LibVcl 的句柄。欢迎任何想法!
谢谢
【问题讨论】:
-
在 FMX 中,必须转换句柄。在
FMX.PlatForm.Win单元中有一个函数可以将 FMX 句柄转换为有效的 Windows 句柄。在这种情况下,像 :FmxHandleToHWND(Form1.Handle)在您的通话中使用它。我认为TLayer3D或TLayout3D根本不会暴露任何句柄。 -
您可能还可以通过这个 SO 问题获得更多信息:delphi-xe2-how-can-i-play-video-files-with-firemonkey。
-
我尝试了 FmxHandleToHWND 并且它正确返回了窗口句柄,这已经是一个很好的进展,但是我必须进行更多调查才能直接在 Tlayer3D 或 Tlayout3D 等这些组件没有任何组件的表面上绘制有效的窗口句柄。
-
我认为播放视频没有那么简单。查看示例应用程序并将其修改为适用于 Delphi。另外,看看 relativ 提出的问题,他正在做同样的事情,并让它发挥作用:stackoverflow.com/questions/8206763/…
-
这是对的,播放视频不是那么容易,我现在成功地在 FMX 表单上播放视频,但是尝试将此 fmx 表单嵌入到任何 fmx 3D 对象中,例如 TLayout3D,我看到 relativ 完成了这项工作,但是确实知道该怎么做。顺便感谢您的链接。
标签: delphi delphi-xe2 firemonkey