玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Plugins
WebBrowser
MultimediaRecord.h
1
// Author: Kang Lin <kl222@126.com>
2
3
#pragma once
4
5
#include <QThread>
6
#include <QImage>
7
#if HAVE_QT6_MULTIMEDIA
8
#include <QMediaCaptureSession>
9
#endif
10
11
#ifdef HAVE_QT6_RECORD
12
#include <QVideoSink>
13
#include <QAudioInput>
14
#include <QAudioOutput>
15
#include <QAudioBufferInput>
16
#include <QAudioBufferOutput>
17
#include <QVideoFrameInput>
18
#endif
19
20
#include "ParameterRecord.h"
21
#include "ParameterMediaDevices.h"
22
#include "ParameterWebBrowser.h"
23
24
class
CMultimediaRecord :
public
QObject
25
{
26
Q_OBJECT
27
public
:
28
explicit
CMultimediaRecord(
CParameterWebBrowser
* pPara, QObject *parent =
nullptr
);
29
~CMultimediaRecord();
30
31
enum
RV {
32
Success = 0,
33
Fail = -1
34
};
35
Q_ENUM(RV)
36
37
public
Q_SLOTS:
38
void
slotStart();
39
void
slotStop();
40
void
slotUpdateVideoFrame(
const
QImage image);
41
42
Q_SIGNALS:
43
void
sigRunning();
44
void
sigFinished();
45
46
private
:
47
CParameterRecord
m_ParaRecord;
48
CParameterMediaDevices
* m_pMediaDevices;
49
#if HAVE_QT6_MULTIMEDIA
50
QMediaCaptureSession m_CaptureSession;
51
#endif
52
qint64 m_VideoFrameStartTime;
53
#ifdef HAVE_QT6_RECORD
54
QAudioInput m_AudioInput;
55
QVideoFrameInput m_VideoFrameInput;
56
QAudioBufferInput m_AudioBufferInput;
57
QAudioBufferOutput m_AudioBufferOutput;
58
QMediaRecorder m_Recorder;
59
private
Q_SLOTS:
60
void
slotRecordStateChanged(QMediaRecorder::RecorderState state);
61
void
slotRecordError(QMediaRecorder::Error error,
const
QString &errorString);
62
#endif
63
};
64
86
class
CMultimediaRecordThread :
public
QThread
87
{
88
Q_OBJECT
89
public
:
90
explicit
CMultimediaRecordThread(
CParameterWebBrowser
* pPara, QObject *parent =
nullptr
);
91
~CMultimediaRecordThread();
92
public
Q_SLOTS:
93
void
slotUpdateVideoFrame(
const
QImage image);
94
void
slotQuit();
95
protected
:
96
virtual
void
run()
override
;
97
private
:
98
CParameterWebBrowser
* m_pPara;
99
CMultimediaRecord
* m_pRecord;
100
};
CMultimediaRecord
定义
MultimediaRecord.h:25
CParameterMediaDevices
定义
ParameterMediaDevices.h:9
CParameterRecord
定义
ParameterRecord.h:13
CParameterWebBrowser
定义
ParameterWebBrowser.h:12
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力