dtkmultimedia
DTK Multimedia module
载入中...
搜索中...
未找到
dmediarecorder.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DMEDIARECORDER_H
6#define DMEDIARECORDER_H
7
8#include <QMediaRecorder>
9#include <QUrl>
10#include "dmediametadata.h"
11#include "dtkmultimedia.h"
12#include "dmediaformat.h"
13
14DMULTIMEDIA_BEGIN_NAMESPACE
15class DCamera;
16class DMediaCaptureSession;
17class DMediaRecorderPrivate;
18
19class Q_MULTIMEDIA_EXPORT DMediaRecorder : public QMediaRecorder
20{
21 Q_OBJECT
22 Q_DECLARE_PRIVATE(DMediaRecorder)
23
24public:
32 Q_ENUM(Quality)
39 Q_ENUM(EncodingMode)
40public:
41#ifdef BUILD_Qt6
42 explicit DMediaRecorder(QObject *parent = nullptr);
43#else
44 explicit DMediaRecorder(QMediaObject *parent = nullptr);
45#endif
47
48 bool isAvailable() const;
49
50 QUrl outputLocation() const;
51 void setOutputLocation(const QUrl &location);
52
53 QUrl actualLocation() const;
54
55#ifdef BUILD_Qt6
56 RecorderState recorderState() const;
57#else
58 State recorderState() const;
59#endif
60
61 Error error() const;
62 QString errorString() const;
63
64 qint64 duration() const;
65
67 void setMediaFormat(const DMediaFormat &format);
68
71
73 void setQuality(Quality quality);
74
75 QSize videoResolution() const;
76 void setVideoResolution(const QSize &);
77 void setVideoResolution(int width, int height) { setVideoResolution(QSize(width, height)); }
78
79 qreal videoFrameRate() const;
80 void setVideoFrameRate(qreal frameRate);
81
82 int videoBitRate() const;
83 void setVideoBitRate(int bitRate);
84
85 int audioBitRate() const;
86 void setAudioBitRate(int bitRate);
87
88 int audioChannelCount() const;
89 void setAudioChannelCount(int channels);
90
91 int audioSampleRate() const;
92 void setAudioSampleRate(int sampleRate);
93
95 void setMetaData(const DMediaMetaData &metaData);
96#ifdef BUILD_Qt6
98#else
99 void setMetaData(const QString &key, const QVariant &value);
100#endif
101 void addMetaData(const DMediaMetaData &metaData);
102
104 QMediaRecorder *platformRecoder() const;
105
106Q_SIGNALS:
107#ifdef BUILD_Qt6
108 void recorderStateChanged(RecorderState state);
109#else
110 void recorderStateChanged(State state);
111#endif
112 void actualLocationChanged(const QUrl &location);
114
115 void errorOccurred(Error error, const QString &errorString);
117
119
129
130public Q_SLOTS:
131 void record();
132 void pause();
133 void stop();
134
135protected:
136 QScopedPointer<DMediaRecorderPrivate> d_ptr;
137};
138DMULTIMEDIA_END_NAMESPACE
139
140#endif
DMediaCaptureSession类提供相机连接回话相关信息.
Definition dmediacapturesession.h:29
DMediaFormat类提供相机输出格式管理.
Definition dmediaformat.h:20
Definition dmediametadata.h:16
DMediaRecorder类提供相机录制相关功能.
Definition dmediarecorder.h:20
State recorderState() const
返回录像录制状态.
void encoderSettingsChanged()
添加相机录制的位置改变.
void setVideoBitRate(int bitRate)
设置相机录制视频的比特率.
Error error() const
返回相机当前录制的错误状态.
void setAudioSampleRate(int sampleRate)
设置相机录制音频的采样率.
EncodingMode encodingMode() const
返回相机当前录制的编码模式.
void audioChannelCountChanged()
添加相机录制的音频通道数发生改变.
void audioBitRateChanged()
添加相机录制的音频比特率发生改变.
void setEncodingMode(EncodingMode)
返回相机当前录制的编码模式.
QSize videoResolution() const
返回相机录制视频的分辨率.
void encodingModeChanged()
添加相机录制的编码模式发生改变.
Quality quality() const
返回相机录制的质量.
void setOutputLocation(const QUrl &location)
设置录像输出文件路径.
void recorderStateChanged(State state)
添加相机录制的录制状态改变.
void videoResolutionChanged()
添加相机录制的视频像素发生改变.
void pause()
信号槽-相机暂停录制.
void setAudioChannelCount(int channels)
设置相机录制音频的声道数.
void stop()
信号槽-相机停止录制.
qreal videoFrameRate() const
返回相机录制视频的帧率.
DMediaFormat mediaFormat() const
返回相机当前录制的时长.
int videoBitRate() const
返回相机录制视频的比特率.
void mediaFormatChanged()
添加相机录制的媒体格式发生改变.
void audioSampleRateChanged()
添加相机录制的音频采样率发生改变.
QString errorString() const
返回相机当前录制的错误描述.
void videoFrameRateChanged()
添加相机录制的视频帧率发生改变.
void setQuality(Quality quality)
设置相机录制的质量.
bool isAvailable() const
录像功能是否可用.
qint64 duration() const
返回相机当前录制的时长.
void actualLocationChanged(const QUrl &location)
添加相机录制的位置改变.
Quality
拍照质量
Definition dmediarecorder.h:25
@ HighQuality
Definition dmediarecorder.h:29
@ VeryLowQuality
Definition dmediarecorder.h:26
@ LowQuality
Definition dmediarecorder.h:27
@ NormalQuality
Definition dmediarecorder.h:28
int audioSampleRate() const
返回相机录制音频的采样率.
void metaDataChanged()
添加相机录制的元数据发生改变.
DMediaCaptureSession * captureSession() const
返回相机的回话.
void errorOccurred(Error error, const QString &errorString)
添加相机录制的错误发生.
void errorChanged()
添加相机录制的错误发生改变.
void addMetaData(const DMediaMetaData &metaData)
添加相机录制的元数据.
void setMetaData(const QString &key, const QVariant &value)
添加相机录制的元数据.
void videoBitRateChanged()
添加相机录制的视频比特率发生改变.
void record()
信号槽-相机开始录制.
void setVideoResolution(int width, int height)
设置相机录制视频的分辨率.
Definition dmediarecorder.h:77
void qualityChanged()
添加相机录制的编码质量发生改变.
DMediaMetaData metaData() const
返回相机录制的元数据.
void setMetaData(const DMediaMetaData &metaData)
设置相机录制的元数据.
int audioChannelCount() const
返回相机录制音频的声道数.
QUrl outputLocation() const
返回录像输出文件路径.
int audioBitRate() const
返回相机录制音频的比特率.
void setAudioBitRate(int bitRate)
设置相机录制音频的比特率.
void setVideoFrameRate(qreal frameRate)
设置相机录制视频的帧率.
QMediaRecorder * platformRecoder() const
返回相机的录制对象.
QUrl actualLocation() const
返回录像输出文件真实路径.
void setMediaFormat(const DMediaFormat &format)
设置录像输出文件格式.
EncodingMode
编码质量
Definition dmediarecorder.h:33
@ ConstantQualityEncoding
Definition dmediarecorder.h:34
@ AverageBitRateEncoding
Definition dmediarecorder.h:36
@ ConstantBitRateEncoding
Definition dmediarecorder.h:35