ScreenCapture QML Type

Dieser Typ wird für die Erfassung eines Bildschirms verwendet. Mehr...

Import Statement: import QtMultimedia
Since: Qt 6.5
In C++: QScreenCapture

Eigenschaften

Ausführliche Beschreibung

ScreenCapture nimmt einen Bildschirm auf. Es wird von MediaCaptureSession verwaltet, wobei der erfasste Bildschirm in einem Videovorschauobjekt angezeigt oder in einer Datei aufgezeichnet werden kann.

Der folgende Code zeigt eine einfache Aufnahmesitzung mit ScreenCapture, bei der die aufgenommene primäre Bildschirmansicht in VideoOutput wiedergegeben wird.

CaptureSession {
    id: captureSession
    screenCapture: ScreenCapture {
        id: screenCapture
        active: true
    }
    videoOutput: VideoOutput {
        id: videoOutput
    }
}

Einschränkungen für Screen Capture

Unter Qt 6.5.2 und höher gelten die folgenden Einschränkungen für die Verwendung von ScreenCapture:

  • Es wird nur mit dem FFmpeg-Backend unterstützt.
  • Auf Linux-Systemen, die den Wayland-Compositor verwenden, ist die Screen-Capture-Implementierung experimentell und unterliegt den folgenden Einschränkungen. Aufgrund von Einschränkungen des Wayland-Protokolls ist es nicht möglich, den Zielbildschirm über die API der Klasse QScreenCapture zu setzen und abzurufen. Stattdessen zeigt das Betriebssystem beim Aufruf von QScreenCapture::setActive(true) einen Bildschirmauswahl-Assistenten an. Die Bildschirmaufnahmefunktion erfordert die Installation des ScreenCast-Dienstes, der über XDG Desktop Portal und {https://pipewire.org/}{PipeWire} (0.3) unterstützt wird. Diese Einschränkungen können sich in Zukunft ändern.
  • Sie wird auf mobilen Betriebssystemen nicht unterstützt, außer auf Android. Für Screen Capture auf Android muss der Datei AndroidManifest.xml eine zusätzliche Berechtigung für den Android-Vordergrunddienst hinzugefügt werden:
    <manifest ...>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
    <application ...>
        <service android:name="org.qtproject.qt.android.multimedia.QtScreenCaptureService"
            android:foregroundServiceType="mediaProjection"
            android:exported="false"/>
        </service>
    </application>
    </manifest>
  • Auf eingebetteten Systemen mit EGLFS ist die Funktionalität eingeschränkt. Für Qt Quick -Anwendungen wird die Klasse derzeit über QQuickWindow::grabWindow implementiert, was zu Leistungsproblemen führen kann.
  • In den meisten Fällen legen wir eine Bildwiederholrate für die Bildschirmaufnahme fest, die der Bildwiederholrate entspricht, außer unter Windows, wo die Rate flexibel sein kann. Eine solche Bildrate (75/120 FPS) kann auf schwachen CPUs zu Leistungsproblemen führen, wenn der erfasste Bildschirm eine 4K-Auflösung hat. Bei EGLFS ist die Erfassungsbildrate derzeit auf 30 FPS festgelegt.

Siehe auch WindowCapture und CaptureSession.

Eigenschaft Dokumentation

active : bool

Beschreibt, ob das Capturing gerade aktiv ist.


error : enumeration [read-only]

Gibt einen Code für den letzten Fehler zurück.


errorString : string [read-only]

Gibt eine menschenlesbare Zeichenfolge zurück, die die Fehlerursache beschreibt.


screen : Screen

Beschreibt den Bildschirm für die Aufzeichnung.


© 2025 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.