QScreenCapture Class▲
-
Header: QScreenCapture
-
Since: Qt 6.5
-
CMake:
find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
-
qmake: QT += multimedia
-
Inherited By:
-
Instantiated By: qml-qtmultimedia-screencapture.xml
-
Inherits: QObject
-
Inherited By:
-
Group: QScreenCapture is part of multimedia, multimedia_video
Detailed Description▲
The class captures a screen. It is managed by the QMediaCaptureSession class where the captured screen can be displayed in a video preview object or recorded to a file.
QMediaCaptureSession session;
QAudioInput audioInput;
session.setAudioInput(&
amp;input);
QMediaRecorder recorder;
session.setRecorder(&
amp;recorder);
recorder.setQuality(QMediaRecorder::
HighQuality);
recorder.setOutputLocation(QUrl::
fromLocalFile("test.mp3"
));
recorder.record();
Screen Capture Limitations▲
On Qt 6.5.2 and 6.5.3, the following limitations apply to using QScreenCapture:
-
It is only supported with the FFmpeg backend.
-
It is supported on all desktop platforms, except Linux with Wayland compositor, due to Wayland protocol restrictions and limitations.
-
It is not supported on mobile operating systems, except on Android. There, you might run into performance issues as the class is currently implemented via QScreen::grabWindow, which is not optimal for the use case.
-
On Linux, it works with X11, but it has not been tested on embedded.
-
In most cases, we set a screen capture frame rate that equals the screen refresh rate, except on Windows, where the rate might be flexible. Such a frame rate (75/120 FPS) might cause performance issues on weak CPUs if the captured screen is of 4K resolution.
See Also▲
See also QWindowCapture, QMediaCaptureSession
Member Type Documentation▲
enum QScreenCapture::Error▲
Enumerates error codes that can be signaled by the QScreenCapture class. errorString() provides detailed information about the error cause.
Constant |
Value |
Description |
---|---|---|
QScreenCapture::NoError |
0 |
No error |
QScreenCapture::InternalError |
1 |
Internal screen capturing driver error |
QScreenCapture::CapturingNotSupported |
2 |
Capturing is not supported |
QScreenCapture::CaptureFailed |
4 |
Capturing screen failed |
QScreenCapture::NotFound |
5 |
Selected screen not found |
Property Documentation▲
active : bool▲
This property holds whether the capturing is currently active.
Access functions:
-
bool isActive() const
-
void setActive(bool active)
Notifier signal:
-
void activeChanged(bool)
[read-only] error : const Error▲
This property holds the code of the last error.
Access functions:
-
error() const
Notifier signal:
-
void errorChanged()
[read-only] errorString : const QString▲
This property holds a human readable string describing the cause of error.
Access functions:
-
errorString() const
Notifier signal:
-
void errorChanged()
screen : QScreen*▲
This property holds the screen for capturing.
Access functions:
-
*screen() const
-
void setScreen( *screen)
Notifier signal:
-
void screenChanged(QScreen *)
Member Function Documentation▲
QMediaCaptureSession *QScreenCapture::captureSession() const▲
Returns the capture session this QScreenCapture is connected to.
Use QMediaCaptureSession::setScreenCapture() to connect the camera to a session.
void QScreenCapture::errorOccurred(QScreenCapture::Error error, const QString &errorString)▲
Signals when an error occurs, along with the errorString.
void QScreenCapture::start()▲
Starts screen capture.
void QScreenCapture::stop()▲
Stops screen capture.