VideoOutput QML Type
渲染视频或相机取景器。更多...
| Import Statement: | import QtMultimedia |
| Inherits: |
属性
- contentRect : rectangle
- endOfStreamPolicy : enumeration
(since 6.9) - fillMode : enumeration
- mirrored : bool
(since 6.9) - orientation : int
- sourceRect : rectangle
- videoSink : object
方法
- void clearOutput()
(since 6.9)
详细说明
Rectangle {
width: 800
height: 600
color: "black"
MediaPlayer {
id: player
source: "file://video.webm"
videoOutput: videoOutput
}
VideoOutput {
id: videoOutput
anchors.fill: parent
}
}VideoOutput 项支持未变换、拉伸和均匀缩放三种视频显示模式。有关拉伸和均匀缩放显示模式的说明,请参阅fillMode 属性的说明。
另请参阅 MediaPlayer 和Camera 。
属性文档
contentRect : rectangle
该属性存储了将要渲染视频的区域的坐标。在某些填充模式下,该矩形会比VideoOutput 的可见区域更大。
当其他坐标是根据源尺寸指定的时,此属性非常有用——这适用于 0 到 1.0 范围内的相对(归一化)帧坐标。
该矩形范围之外的区域将显示为透明。
endOfStreamPolicy : enumeration [since 6.9]
此属性指定视频流结束时应应用的策略。这种情况发生在媒体播放结束时,或者在摄像头、屏幕或窗口捕获被停用时。
endOfStreamPolicy 的取值可以是以下之一:
| 常量 | 描述 |
|---|---|
ClearOutput | 视频输出将被清空。 |
KeepLastFrame | 视频输出继续显示最后一帧。请使用clearOutput()方法手动清除输出。 |
默认值为 `ClearOutput`。
该属性在 Qt 6.9 中引入。
fillMode : enumeration
设置此属性以定义视频如何缩放以适应目标区域。
- 拉伸 - 视频将被缩放以适应区域。
- 保持宽高比适应 - 视频将均匀缩放以适应目标区域,且不进行裁剪
- 保持宽高比并裁剪 - 视频将均匀缩放以填满区域,必要时进行裁剪
默认填充模式为“保留宽高比填充”。
mirrored : bool [since 6.9]
确定显示的视频是否沿其垂直轴进行镜像翻转。如果源视频流(例如来自前置摄像头的视频流)的变换与应用程序的业务逻辑不一致,建议使用此属性。镜像操作将在orientation 之后应用。
该属性的更改会影响源视频到视口坐标的映射关系。
默认值为false 。
该属性在 Qt 6.9 中引入。
orientation : int
该属性确定显示视频在视频坐标系中顺时针旋转的角度(单位为度),此时显示屏幕上的 Y 轴指向下方。方向变换会在调用 `mirrored` 之前应用。
方向变化会影响从源坐标系到视口的坐标映射。
仅支持 `90 ` 度的整数倍,即 0、90、-90、180、270 等,否则将忽略指定的值。
在某些情况下,源视频流需要校正特定的方向。这包括相机取景器等源,无论用户界面的其余部分如何旋转,显示的取景器都应与现实情况一致。
我们建议使用此属性来补偿用户界面的旋转,或使输出视图与其他应用程序的业务需求保持一致。
默认值为0 。
sourceRect : rectangle
该属性存储源视频内容中用于渲染的区域。其值以源像素坐标表示,并根据源的像素宽高比进行调整。
请注意,通常该矩形的左上角坐标为0,0 ,而宽度和高度则为输入内容的宽度和高度。只有当视频源设置了视口时,这些值才会有所不同。
方向设置不会影响此矩形。
另请参阅 QVideoFrameFormat::viewport()。
videoSink : object
该属性保存了底层的 C++QVideoSink 对象,该对象用于将视频帧渲染到此VideoOutput 元素中。
在 QML 中正常使用VideoOutput 时,通常无需使用此属性。
方法文档
[since 6.9] void clearOutput()
通过移除当前显示的视频帧来清空视频输出。当需要将视频输出从源中断开,或者源流结束且视频输出的endOfStreamPolicy 属性设置为KeepLastFrame 时,建议使用此方法移除最后一个视频帧。
该方法于 Qt 6.9 中引入。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.