- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Firemonkey 开发 Win64 视频应用程序。
我使用 TMediaPlayer 和 TMediaPlayerControl 以全屏模式播放视频文件。
希望在播放视频的时候,在播放画面上叠加播放时间、进度信息、几个播放控制按钮。
但是我发现在TMediaPlayerControl中添加的这些组件无法正常显示。查看了TMediaPlayer相关的源码,发现播放视频的窗口会一直显示在最上层,从而完全覆盖了TMediaPlayerControl上面的组件。
有什么办法可以解决这个问题吗?
最佳答案
您可以通过在 TMediaPlayerControl
所在的窗体顶部(按 z 顺序)添加透明覆盖窗体来实现。通过设置 Transparency = True
使表单透明。要使其位于主窗体之上,请设置 FormStyle = StayOnTop
。您还想设置它的 BorderStyle = None
。
将您想要“ float ”在该透明表单上的视频上方的所有按钮、面板等。由于窗体是透明的,因此控件将漂浮在视频前面。
要使用透明窗体上的控件来控制您的TMediaPlayer
,您需要在辅助窗体的implementation
下添加uses MainForm
。
您可能还希望根据尺寸变化来同步表格,以防在不同尺寸的显示器上使用。在主窗体上使用 OnFormResize
。在尝试访问覆盖表单之前检查覆盖表单是否存在(例如,if overlayForm <> nil then ...),因为它是在主表单之后创建的。根据主窗体设置叠加窗体的宽高。根据需要重新定位控件。
关于delphi - TMediaplayerControl 上的控件无法显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61736181/
我正在使用 Firemonkey 开发 Win64 视频应用程序。 我使用 TMediaPlayer 和 TMediaPlayerControl 以全屏模式播放视频文件。 希望在播放视频的时候,在播放
我是一名优秀的程序员,十分优秀!