Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qmediarecorder.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QMediaRecorder_H
5#define QMediaRecorder_H
6
7#include <QtCore/qobject.h>
8#include <QtCore/qsize.h>
9#include <QtMultimedia/qtmultimediaglobal.h>
10#include <QtMultimedia/qmediaenumdebug.h>
11#include <QtMultimedia/qmediametadata.h>
12
13#include <QtCore/qpair.h>
14
16
17class QUrl;
18class QSize;
19class QAudioFormat;
20class QCamera;
21class QCameraDevice;
22class QMediaFormat;
23class QAudioDevice;
26
28class Q_MULTIMEDIA_EXPORT QMediaRecorder : public QObject
29{
31 Q_PROPERTY(QMediaRecorder::RecorderState recorderState READ recorderState NOTIFY recorderStateChanged)
32 Q_PROPERTY(qint64 duration READ duration NOTIFY durationChanged)
33 Q_PROPERTY(QUrl outputLocation READ outputLocation WRITE setOutputLocation)
34 Q_PROPERTY(QUrl actualLocation READ actualLocation NOTIFY actualLocationChanged)
35 Q_PROPERTY(QMediaMetaData metaData READ metaData WRITE setMetaData NOTIFY metaDataChanged)
36 Q_PROPERTY(QMediaRecorder::Error error READ error NOTIFY errorChanged)
37 Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged)
38 Q_PROPERTY(QMediaFormat mediaFormat READ mediaFormat WRITE setMediaFormat NOTIFY mediaFormatChanged)
39 Q_PROPERTY(Quality quality READ quality WRITE setQuality NOTIFY qualityChanged)
40 Q_PROPERTY(QMediaRecorder::EncodingMode encodingMode READ encodingMode WRITE setEncodingMode NOTIFY encodingModeChanged)
41 Q_PROPERTY(QSize videoResolution READ videoResolution WRITE setVideoResolution NOTIFY videoResolutionChanged)
42 Q_PROPERTY(qreal videoFrameRate READ videoFrameRate WRITE setVideoFrameRate NOTIFY videoFrameRateChanged)
43 Q_PROPERTY(int videoBitRate READ videoBitRate WRITE setVideoBitRate NOTIFY videoBitRateChanged)
44 Q_PROPERTY(int audioBitRate READ audioBitRate WRITE setAudioBitRate NOTIFY audioBitRateChanged)
45 Q_PROPERTY(int audioChannelCount READ audioChannelCount WRITE setAudioChannelCount NOTIFY audioChannelCountChanged)
46 Q_PROPERTY(int audioSampleRate READ audioSampleRate WRITE setAudioSampleRate NOTIFY audioSampleRateChanged)
47public:
49 {
54 VeryHighQuality
55 };
56 Q_ENUM(Quality)
57
59 {
63 TwoPassEncoding
64 };
65 Q_ENUM(EncodingMode)
66
68 {
71 PausedState
72 };
73 Q_ENUM(RecorderState)
74
75 enum Error
76 {
81 LocationNotWritable
82 };
84
85 QMediaRecorder(QObject *parent = nullptr);
87
88 bool isAvailable() const;
89
90 QUrl outputLocation() const;
91 void setOutputLocation(const QUrl &location);
92
93 QUrl actualLocation() const;
94
95 RecorderState recorderState() const;
96
97 Error error() const;
98 QString errorString() const;
99
100 qint64 duration() const;
101
102 QMediaFormat mediaFormat() const;
103 void setMediaFormat(const QMediaFormat &format);
104
105 EncodingMode encodingMode() const;
106 void setEncodingMode(EncodingMode);
107
108 Quality quality() const;
109 void setQuality(Quality quality);
110
111 QSize videoResolution() const;
112 void setVideoResolution(const QSize &);
114
115 qreal videoFrameRate() const;
116 void setVideoFrameRate(qreal frameRate);
117
118 int videoBitRate() const;
119 void setVideoBitRate(int bitRate);
120
121 int audioBitRate() const;
122 void setAudioBitRate(int bitRate);
123
124 int audioChannelCount() const;
125 void setAudioChannelCount(int channels);
126
127 int audioSampleRate() const;
128 void setAudioSampleRate(int sampleRate);
129
130 QMediaMetaData metaData() const;
131 void setMetaData(const QMediaMetaData &metaData);
132 void addMetaData(const QMediaMetaData &metaData);
133
134 QMediaCaptureSession *captureSession() const;
135 QPlatformMediaRecorder *platformRecoder() const;
136
137public Q_SLOTS:
138 void record();
139 void pause();
140 void stop();
141
144 void durationChanged(qint64 duration);
147
148 void errorOccurred(Error error, const QString &errorString);
150
152
162
163private:
166 void setCaptureSession(QMediaCaptureSession *session);
167 Q_DISABLE_COPY(QMediaRecorder)
168 Q_DECLARE_PRIVATE(QMediaRecorder)
169};
170
172
175
176#endif // QMediaRecorder_H
The QAudioDevice class provides an information about audio devices and their functionality.
The QAudioFormat class stores audio stream parameter information.
The QCameraDevice class provides general information about camera devices.
The QCamera class provides interface for system camera devices.
Definition qcamera.h:28
The QMediaCaptureSession class allows capturing of audio and video content.
\inmodule QtMultimedia
\inmodule QtMultimedia
\inmodule QtMultimedia
void setVideoResolution(int width, int height)
Sets the width and height of the resolution of the encoded video.
EncodingMode
Enumerates encoding modes.
void recorderStateChanged(RecorderState state)
\qmlsignal QtMultimedia::MediaRecorder::recorderStateChanged(RecorderState state)
void durationChanged(qint64 duration)
\qmlsignal QtMultimedia::MediaRecorder::durationChanged(qint64 duration)
void errorChanged()
void mediaFormatChanged()
void encodingModeChanged()
Signals when the encoding mode changes.
void videoBitRateChanged()
Signals when the recording video bit rate changes.
void videoFrameRateChanged()
Signals when the recording video frame rate changes.
void encoderSettingsChanged()
Signals when the encoder settings change.
RecorderState
\qmlproperty enumeration QtMultimedia::MediaRecorder::recorderState
void audioBitRateChanged()
Signals when the recording audio bit rate changes.
Quality
\qmlproperty enumeration QtMultimedia::MediaRecorder::quality
void errorOccurred(Error error, const QString &errorString)
\qmlsignal QtMultimedia::MediaRecorder::errorOccurred(Error error, const QString &errorString)
void metaDataChanged()
\qmlsignal QtMultimedia::MediaRecorder::metaDataChanged()
void qualityChanged()
Signals when the recording quality changes.
void audioChannelCountChanged()
Signals when the recording audio channel count changes.
void audioSampleRateChanged()
Signals when the recording audio sample rate changes.
Error
\qmlproperty enumeration QtMultimedia::MediaRecorder::error
void actualLocationChanged(const QUrl &location)
\qmlsignal QtMultimedia::MediaRecorder::actualLocationChanged(const QUrl &location)
void videoResolutionChanged()
Signals when the video recording resolution changes.
\inmodule QtCore
Definition qobject.h:90
QScopedPointer< QObjectData > d_ptr
Definition qobject.h:338
\inmodule QtCore
Definition qsize.h:25
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\inmodule QtCore
Definition qurl.h:94
else opt state
[0]
Combined button and popup list for selecting options.
DBusConnection const char DBusError * error
#define Q_MEDIA_ENUM_DEBUG(Class, Enum)
GLint location
GLint GLsizei GLsizei height
GLint GLsizei width
GLint GLsizei GLsizei GLenum format
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_SLOTS
#define Q_SIGNALS
long long qint64
Definition qtypes.h:55
double qreal
Definition qtypes.h:92
MyRecord record(int row) const
[0]
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent