PySide6.QtMultimedia.QScreenCapture¶
- class QScreenCapture¶
此类用于捕获屏幕。更多…
在6.5版本中添加。
概要¶
属性¶
activeᅟ- 捕获当前是否处于活动状态errorᅟ- 最后一个错误的代码errorStringᅟ- 描述错误原因的可读字符串screenᅟ- 用于捕获的屏幕
方法¶
def
__init__()def
captureSession()def
error()def
errorString()def
isActive()def
screen()def
setScreen()
插槽¶
def
setActive()def
start()def
stop()
信号¶
def
activeChanged()def
errorChanged()def
errorOccurred()def
screenChanged()
注意
本文档可能包含从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:
此属性用于保存捕获的屏幕。
- Access functions:
- activeChanged(arg__1)¶
- Parameters:
arg__1 – 布尔值
属性
activeᅟ的通知信号。- captureSession()¶
- Return type:
返回此
QScreenCapture连接的捕获会话。使用
setScreenCapture()将相机连接到会话。属性
errorᅟ的获取器。- errorChanged()¶
属性
errorᅟ的通知信号。当发生
error时发出信号,同时带有errorString。- errorString()¶
- Return type:
字符串
属性
errorStringᅟ的获取器。- isActive()¶
- Return type:
布尔
属性
activeᅟ的获取器。- screen()¶
- Return type:
另请参阅
属性
screenᅟ的获取器。属性
screenᅟ的通知信号。- setActive(active)¶
- Parameters:
active – 布尔值
另请参阅
属性
activeᅟ的设置器。属性
screenᅟ的设置器。- start()¶
开始屏幕捕获。
- stop()¶
停止屏幕捕获。