PySide6.QtMultimedia.QScreenCapture

class QScreenCapture

此类用于捕获屏幕。更多

PySide6.QtMultimedia.QScreenCapture 的继承图

在6.5版本中添加。

概要

属性

方法

插槽

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

该类用于捕获屏幕。它由QMediaCaptureSession类管理,捕获的屏幕可以在视频预览对象中显示或录制到文件中。

session = QMediaCaptureSession()
audioInput = QAudioInput()
session.setAudioInput(input)
recorder = QMediaRecorder()
session.setRecorder(recorder)
recorder.setQuality(QMediaRecorder.HighQuality)
recorder.setOutputLocation(QUrl.fromLocalFile("test.mp3"))
recorder.record()

屏幕截图限制

在 Qt 6.5.2 及以上版本中,使用 QScreenCapture 时存在以下限制:

  • 仅支持FFmpeg后端。

  • 在使用Wayland合成器的Linux系统上,屏幕捕获实现是实验性的,并具有以下限制。由于Wayland协议的限制,无法通过QScreenCapture类的API设置和获取目标屏幕。相反,操作系统将在调用QScreenCapture::setActive(true)时显示一个屏幕选择向导。屏幕捕获功能需要安装通过XDG Desktop Portal和{https://pipewire.org/}{PipeWire}(0.3)支持的ScreenCast服务。这些限制可能会在未来发生变化。

  • 它不支持移动操作系统,除了在Android上。在那里,你可能会遇到性能问题,因为该类目前是通过QScreen::grabWindow实现的,这对于该用例来说并不是最优的。

  • 在嵌入EGLFS时,其功能有限。对于Qt Quick应用程序,该类目前通过QQuickWindow::grabWindow实现,这可能会导致性能问题。

  • 在大多数情况下,我们设置的屏幕捕获帧率等于屏幕刷新率,但在Windows上,帧率可能是灵活的。如果捕获的屏幕是4K分辨率,这样的帧率(75/120 FPS)可能会在性能较弱的CPU上导致性能问题。在EGLFS上,捕获帧率目前锁定为30 FPS。

class Error

枚举了可以由QScreenCapture类发出的错误代码。errorString()提供了关于错误原因的详细信息。

常量

描述

QScreenCapture.NoError

没有错误

QScreenCapture.InternalError

内部屏幕捕获驱动程序错误

QScreenCapture.CapturingNotSupported

不支持捕获

QScreenCapture.CaptureFailed

屏幕捕获失败

QScreenCapture.NotFound

未找到选定的屏幕

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property activeᅟ: bool

此属性表示当前是否正在捕获。

Access functions:
property errorᅟ: QScreenCapture.错误

此属性保存最后一个错误的代码。

Access functions:
property errorStringᅟ: str

此属性包含一个描述错误原因的人类可读字符串。

Access functions:
property screenᅟ: QScreen

此属性用于保存捕获的屏幕。

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

activeChanged(arg__1)
Parameters:

arg__1 – 布尔值

属性 activeᅟ 的通知信号。

captureSession()
Return type:

QMediaCaptureSession

返回此QScreenCapture连接的捕获会话。

使用setScreenCapture()将相机连接到会话。

error()
Return type:

错误

属性 errorᅟ 的获取器。

errorChanged()

属性 errorᅟ 的通知信号。

errorOccurred(error, errorString)
Parameters:
  • 错误Error

  • errorString – str

当发生error时发出信号,同时带有errorString

errorString()
Return type:

字符串

属性 errorStringᅟ 的获取器。

isActive()
Return type:

布尔

属性 activeᅟ 的获取器。

screen()
Return type:

QScreen

另请参阅

setScreen()

属性 screenᅟ 的获取器。

screenChanged(arg__1)
Parameters:

arg__1QScreen

属性 screenᅟ 的通知信号。

setActive(active)
Parameters:

active – 布尔值

另请参阅

isActive()

属性 activeᅟ 的设置器。

setScreen(screen)
Parameters:

屏幕QScreen

另请参阅

screen()

属性 screenᅟ 的设置器。

start()

开始屏幕捕获。

stop()

停止屏幕捕获。