QScreenCapture 类
该类用于捕获屏幕画面。 更多...
头文件 | #include <QScreenCapture> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
qmake | QT += multimedia |
自 | Qt 6.5 |
由以下类实例化 | ScreenCapture |
继承 | QObject |
公共类型
枚举 | Error { NoError, InternalError, CapturingNotSupported, CaptureFailed, NotFound } |
属性
- active : bool
- error : const Error
- errorString : const QString
- screen : QScreen*
公共函数
QMediaCaptureSession * | captureSession() const |
QScreenCapture::Error | error() const |
QString | errorString() const |
bool | isActive() const |
QScreen * | screen() const |
void | setScreen(QScreen *screen) |
公共槽函数
信号
void | activeChanged(bool) |
void | errorChanged() |
void | errorOccurred(QScreenCapture::Error error, const QString &errorString) |
void | screenChanged(QScreen *) |
详细说明
该类捕获屏幕画面。它由QMediaCaptureSession类管理,在视频预览对象或文件中显示捕获的屏幕画面。
QMediaCaptureSession session; QAudioInput audioInput; session.setAudioInput(&input); QMediaRecorder recorder; session.setRecorder(&recorder); recorder.setQuality(QMediaRecorder::HighQuality); recorder.setOutputLocation(QUrl::fromLocalFile("test.mp3")); recorder.record();
屏幕捕获限制
在 Qt 6.5.2 及以上版本中,针对 QScreenCapture 的以下限制适用
- 仅支持 FFmpeg 后端。
- 由于 Wayland 协议限制和限制,不支持 Linux 上的 Wayland 合成器。
- 不支持在移动操作系统上运行,除了在Android上。在那里,由于当前通过QScreen::grabWindow实现,这在该用例中不是最佳的,您可能会遇到性能问题。
- 在集成EGLFS的情况下,功能有限。对于Qt Quick应用程序,该类目前通过QQuickWindow::grabWindow实现,这可能导致性能问题。
- 在大多数情况下,我们设置屏幕捕获帧率与屏幕刷新率相等,但在Windows上,这个率可能灵活。这种帧率(75/120帧/秒)可能会在弱CPU上引起性能问题,如果捕获的屏幕是4K分辨率。在EGLFS上,捕获帧率目前锁定为30帧/秒。
另见 QWindowCapture 和 QMediaCaptureSession。
成员类型文档
枚举 QScreenCapture::Error
枚举由 QScreenCapture 类可发送的错误代码。 errorString() 提供了有关错误原因的详细信息。
常量 | 值 | 描述 |
---|---|---|
QScreenCapture::NoError | 0 | 无错误 |
QScreenCapture::InternalError | 1 | 内部屏幕捕获驱动程序错误 |
QScreenCapture::CapturingNotSupported | 2 | 不支持捕获 |
QScreenCapture::CaptureFailed | 4 | 屏幕捕获失败 |
QScreenCapture::NotFound | 5 | 选定的屏幕未找到 |
属性文档
active : bool
此属性表示是否当前正在激活捕获。
访问函数
bool | isActive() const |
void | setActive(bool active) |
通知信号
void | activeChanged(bool) |
[只读]
error : const Error
此属性包含最后一个错误的代码。
访问函数
QScreenCapture::Error | error() const |
通知信号
void | errorChanged() |
[只读]
errorString : const QString
此属性包含描述错误原因的易读字符串。
访问函数
QString | errorString() const |
通知信号
void | errorChanged() |
screen : QScreen*
此属性包含用于捕获的屏幕。
访问函数
QScreen * | screen() const |
void | setScreen(QScreen *screen) |
通知信号
void | screenChanged(QScreen *) |
成员函数文档
QMediaCaptureSession *QScreenCapture::captureSession() const
返回此 QScreenCapture 连接到的捕获会话。
使用 QMediaCaptureSession::setScreenCapture() 将相机连接到会话。
[信号]
void QScreenCapture::errorOccurred(QScreenCapture::Error error, const QString &errorString)
当发生错误时发出信号,以及错误字符串。
[槽]
void QScreenCapture::start()
开始屏幕捕获。
[slot]
void QScreenCapture::stop()
停止屏幕录制。
© 2024 The Qt Company Ltd. 本文档中的文档贡献归各所有者所有版权。提供的文档受 GNU自由文档许可证版本1.3 的条款约束,由自由软件基金会发布。Qt及其相关标志是The Qt Company Ltd.在芬兰以及全球其他国家的商标。所有其他商标均为其各自所有者的财产。