40 ****************************************************************************/ |
40 ****************************************************************************/ |
41 |
41 |
42 #ifndef QMEDIARECORDER_H |
42 #ifndef QMEDIARECORDER_H |
43 #define QMEDIARECORDER_H |
43 #define QMEDIARECORDER_H |
44 |
44 |
45 #include "qmediaobject.h" |
45 #include <qmediaobject.h> |
46 #include "qmediaserviceprovider.h" |
46 #include <qmediaserviceprovider.h> |
47 #include "qmediaencodersettings.h" |
47 #include <qmediaencodersettings.h> |
|
48 #include <qmediabindableinterface.h> |
48 |
49 |
49 #include <QtCore/qpair.h> |
50 #include <QtCore/qpair.h> |
50 |
51 |
51 QT_BEGIN_NAMESPACE |
52 QT_BEGIN_NAMESPACE |
52 class QUrl; |
53 class QUrl; |
59 class QMediaRecorderService; |
60 class QMediaRecorderService; |
60 class QAudioEncoderSettings; |
61 class QAudioEncoderSettings; |
61 class QVideoEncoderSettings; |
62 class QVideoEncoderSettings; |
62 |
63 |
63 class QMediaRecorderPrivate; |
64 class QMediaRecorderPrivate; |
64 class Q_MEDIA_EXPORT QMediaRecorder : public QMediaObject |
65 class Q_MULTIMEDIA_EXPORT QMediaRecorder : public QObject, public QMediaBindableInterface |
65 { |
66 { |
66 Q_OBJECT |
67 Q_OBJECT |
|
68 Q_INTERFACES(QMediaBindableInterface) |
67 Q_ENUMS(State) |
69 Q_ENUMS(State) |
68 Q_ENUMS(Error) |
70 Q_ENUMS(Error) |
69 Q_PROPERTY(qint64 duration READ duration NOTIFY durationChanged) |
71 Q_PROPERTY(qint64 duration READ duration NOTIFY durationChanged) |
70 Q_PROPERTY(QUrl outputLocation READ outputLocation WRITE setOutputLocation) |
72 Q_PROPERTY(QUrl outputLocation READ outputLocation WRITE setOutputLocation) |
|
73 Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged) |
|
74 Q_PROPERTY(bool metaDataAvailable READ isMetaDataAvailable NOTIFY metaDataAvailableChanged) |
|
75 Q_PROPERTY(bool metaDataWritable READ isMetaDataWritable NOTIFY metaDataWritableChanged) |
71 public: |
76 public: |
72 |
77 |
73 enum State |
78 enum State |
74 { |
79 { |
75 StoppedState, |
80 StoppedState, |
85 }; |
90 }; |
86 |
91 |
87 QMediaRecorder(QMediaObject *mediaObject, QObject *parent = 0); |
92 QMediaRecorder(QMediaObject *mediaObject, QObject *parent = 0); |
88 ~QMediaRecorder(); |
93 ~QMediaRecorder(); |
89 |
94 |
|
95 QMediaObject *mediaObject() const; |
|
96 |
90 bool isAvailable() const; |
97 bool isAvailable() const; |
91 QtMediaServices::AvailabilityError availabilityError() const; |
98 QtMultimedia::AvailabilityError availabilityError() const; |
92 |
99 |
93 QUrl outputLocation() const; |
100 QUrl outputLocation() const; |
94 bool setOutputLocation(const QUrl &location); |
101 bool setOutputLocation(const QUrl &location); |
95 |
102 |
96 State state() const; |
103 State state() const; |
97 |
104 |
98 Error error() const; |
105 Error error() const; |
99 QString errorString() const; |
106 QString errorString() const; |
100 |
107 |
101 qint64 duration() const; |
108 qint64 duration() const; |
|
109 |
|
110 bool isMuted() const; |
102 |
111 |
103 QStringList supportedContainers() const; |
112 QStringList supportedContainers() const; |
104 QString containerDescription(const QString &containerMimeType) const; |
113 QString containerDescription(const QString &containerMimeType) const; |
105 |
114 |
106 QStringList supportedAudioCodecs() const; |
115 QStringList supportedAudioCodecs() const; |
124 |
133 |
125 void setEncodingSettings(const QAudioEncoderSettings &audioSettings, |
134 void setEncodingSettings(const QAudioEncoderSettings &audioSettings, |
126 const QVideoEncoderSettings &videoSettings = QVideoEncoderSettings(), |
135 const QVideoEncoderSettings &videoSettings = QVideoEncoderSettings(), |
127 const QString &containerMimeType = QString()); |
136 const QString &containerMimeType = QString()); |
128 |
137 |
|
138 |
|
139 bool isMetaDataAvailable() const; |
|
140 bool isMetaDataWritable() const; |
|
141 |
|
142 QVariant metaData(QtMultimedia::MetaData key) const; |
|
143 void setMetaData(QtMultimedia::MetaData key, const QVariant &value); |
|
144 QList<QtMultimedia::MetaData> availableMetaData() const; |
|
145 |
|
146 QVariant extendedMetaData(const QString &key) const; |
|
147 void setExtendedMetaData(const QString &key, const QVariant &value); |
|
148 QStringList availableExtendedMetaData() const; |
|
149 |
129 public Q_SLOTS: |
150 public Q_SLOTS: |
130 void record(); |
151 void record(); |
131 void pause(); |
152 void pause(); |
132 void stop(); |
153 void stop(); |
|
154 void setMuted(bool muted); |
133 |
155 |
134 Q_SIGNALS: |
156 Q_SIGNALS: |
135 void stateChanged(QMediaRecorder::State state); |
157 void stateChanged(QMediaRecorder::State state); |
136 void durationChanged(qint64 duration); |
158 void durationChanged(qint64 duration); |
|
159 void mutedChanged(bool muted); |
137 |
160 |
138 void error(QMediaRecorder::Error error); |
161 void error(QMediaRecorder::Error error); |
139 |
162 |
|
163 void metaDataAvailableChanged(bool available); |
|
164 void metaDataWritableChanged(bool writable); |
|
165 void metaDataChanged(); |
|
166 |
|
167 protected: |
|
168 bool setMediaObject(QMediaObject *object); |
|
169 |
140 private: |
170 private: |
|
171 QMediaRecorderPrivate *d_ptr; |
141 Q_DISABLE_COPY(QMediaRecorder) |
172 Q_DISABLE_COPY(QMediaRecorder) |
142 Q_DECLARE_PRIVATE(QMediaRecorder) |
173 Q_DECLARE_PRIVATE(QMediaRecorder) |
143 Q_PRIVATE_SLOT(d_func(), void _q_stateChanged(QMediaRecorder::State)) |
174 Q_PRIVATE_SLOT(d_func(), void _q_stateChanged(QMediaRecorder::State)) |
144 Q_PRIVATE_SLOT(d_func(), void _q_error(int, const QString &)) |
175 Q_PRIVATE_SLOT(d_func(), void _q_error(int, const QString &)) |
|
176 Q_PRIVATE_SLOT(d_func(), void _q_serviceDestroyed()) |
145 }; |
177 }; |
146 |
178 |
147 QT_END_NAMESPACE |
179 QT_END_NAMESPACE |
148 |
180 |
149 Q_DECLARE_METATYPE(QMediaRecorder::State) |
181 Q_DECLARE_METATYPE(QMediaRecorder::State) |