TMediaplayerControl 上的控件无法显示
The controls on TMediaplayerControl cannot be displayed
我正在使用 Firemonkey 开发一个 Win64 视频应用程序。
我使用TMediaPlayer 和TMediaPlayerControl 以全屏模式播放视频文件。
希望在播放视频的时候,在播放画面上叠加播放时间,进度信息,几个播放控制按钮。
但是我发现在TMediaPlayerControl中添加的这些组件无法正常显示。查看了TMediaPlayer相关的源码,发现视频播放的window会一直显示在顶层,从而完全覆盖了TMediaPlayerControl上面的组件。
有什么办法可以解决这个问题吗?
您可以通过在 TMediaPlayerControl
所在的表单顶部(按 z 顺序)添加透明覆盖表单来实现。您可以通过设置 Transparency = True
使表单透明。让它停留在你的主表单集 FormStyle = StayOnTop
之上。您还想设置其 BorderStyle = None
.
将您想要 "float" 放置在这个透明表单上的视频上方的所有按钮、面板等。由于窗体是透明的,因此控件将漂浮在视频前面。
要使用透明窗体上的控件控制您的TMediaPlayer
,您需要在辅助窗体的implementation
下添加uses MainForm
。
您可能还希望根据尺寸变化来同步表格,以防在不同尺寸的显示器上使用。在主窗体上使用 OnFormResize
。在尝试访问覆盖表单之前检查覆盖表单是否存在(例如,if overlayForm <> nil then ...),因为它是在主表单之后创建的。根据主窗体设置叠加窗体的宽高。根据需要重新定位控件。
我正在使用 Firemonkey 开发一个 Win64 视频应用程序。
我使用TMediaPlayer 和TMediaPlayerControl 以全屏模式播放视频文件。
希望在播放视频的时候,在播放画面上叠加播放时间,进度信息,几个播放控制按钮。
但是我发现在TMediaPlayerControl中添加的这些组件无法正常显示。查看了TMediaPlayer相关的源码,发现视频播放的window会一直显示在顶层,从而完全覆盖了TMediaPlayerControl上面的组件。
有什么办法可以解决这个问题吗?
您可以通过在 TMediaPlayerControl
所在的表单顶部(按 z 顺序)添加透明覆盖表单来实现。您可以通过设置 Transparency = True
使表单透明。让它停留在你的主表单集 FormStyle = StayOnTop
之上。您还想设置其 BorderStyle = None
.
将您想要 "float" 放置在这个透明表单上的视频上方的所有按钮、面板等。由于窗体是透明的,因此控件将漂浮在视频前面。
要使用透明窗体上的控件控制您的TMediaPlayer
,您需要在辅助窗体的implementation
下添加uses MainForm
。
您可能还希望根据尺寸变化来同步表格,以防在不同尺寸的显示器上使用。在主窗体上使用 OnFormResize
。在尝试访问覆盖表单之前检查覆盖表单是否存在(例如,if overlayForm <> nil then ...),因为它是在主表单之后创建的。根据主窗体设置叠加窗体的宽高。根据需要重新定位控件。