QScreenCapture Class
このクラスは画面をキャプチャするために使用します。詳細...
ヘッダー | #include <QScreenCapture> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
qmake: | QT += multimedia |
以来: | Qt 6.5 |
QML で | ScreenCapture |
継承: | QObject |
パブリックな型
enum | 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プロトコルの制限により、
QScreenCapture
クラスのAPIを介してターゲット画面を設定および取得することはできません。代わりに、QScreenCapture::setActive(true)
を起動すると、OSは画面選択ウィザードを表示します。画面キャプチャ機能を使用するには、XDG Desktop Portalおよび {https://pipewire.org/}{PipeWire} (0.3) を介してサポートされるScreenCastサービスのインストールが必要です。これらの制限は将来変更される可能性があります。 - Android 以外のモバイル OS ではサポートされていません。Android での Screen Capture は、
AndroidManifest.xml
ファイルに追加のAndroid フォアグラウンド サービス許可を追加する必要があります:<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>
- EGLFSを搭載した組み込み機器では、機能に制限があります。Qt Quick アプリケーションの場合、このクラスは現在、QQuickWindow::grabWindow を介して実装されているため、パフォーマンス上の問題が発生する可能性があります。
- ほとんどの場合、画面のリフレッシュ・レートに等しい画面キャプチャ・フレーム・レートを設定します。このようなフレームレート(75/120 FPS)は、キャプチャされた画面が4K解像度の場合、弱いCPUでパフォーマンスの問題を引き起こす可能性があります。EGLFSでは、キャプチャフレームレートは現在30 FPSに固定されています。
QWindowCapture およびQMediaCaptureSessionも参照してください 。
メンバータイプのドキュメント
enum 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) |
[read-only]
error : const Error
このプロパティは、最後のエラーのコードを保持する。
アクセス関数
QScreenCapture::Error | error() const |
通知シグナル
void | errorChanged() |
[read-only]
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() を使用します。
[signal]
void QScreenCapture::errorOccurred(QScreenCapture::Error error, const QString &errorString)
errorString とともに、error の発生を知らせる。
[slot]
void QScreenCapture::start()
画面キャプチャを開始します。
[slot]
void QScreenCapture::stop()
画面キャプチャを停止する。
© 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.