av_recorder.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. #include <QCheckBox>
  3. #include <QLayout>
  4. #include <QListWidget>
  5. #include <QPushButton>
  6. #include <QTime>
  7. #include <QTimer>
  8. #include <QWidget>
  9. #include "audio_widget.h"
  10. #include "recorder/audio_recorder.h"
  11. #include "recorder/video_recorder.h"
  12. #include "ui/opengl_video_widget.h"
  13. #include "ui/settings_page.h"
  14. #include "avrecorder/capturer/video/VideoCaptureManager.h"
  15. using namespace avrecorder::video;
  16. class AvRecorder : public QWidget
  17. {
  18. Q_OBJECT
  19. public:
  20. AvRecorder(QWidget* parent = nullptr);
  21. ~AvRecorder();
  22. private:
  23. AudioRecorder m_audioRecorder;
  24. VideoRecorder m_videoRecorder;
  25. AvMuxer _avMuxer;
  26. // VideoRender _videoRender;
  27. OpenGLVideoWidget* glWidget;
  28. AudioWidget* _microphoneWidget = nullptr;
  29. AudioWidget* _speakerWidget = nullptr;
  30. QPushButton* _recordBtn = nullptr;
  31. QPushButton* _liveBtn = nullptr;
  32. QPushButton* _settingsBtn = nullptr;
  33. QCheckBox* _isDrawCursorBox = nullptr;
  34. Timer _videoRenderTimer;
  35. QTimer _otherTimer;
  36. QListWidget* _captureListWidget = nullptr;
  37. QPushButton* _updateListBtn = nullptr;
  38. bool _isRecord = false;
  39. bool _isLive = false;
  40. void _InitUi();
  41. QComboBox* _captureMethodBox = nullptr;
  42. QLabel* _captureStatusLabel = nullptr;
  43. QLabel* _captureTimeLabel = nullptr;
  44. QLabel* _fpsLabel = nullptr;
  45. QLabel* _videoEncodeLabel = nullptr;
  46. QLabel* _videolossRate = nullptr;
  47. SettingsPage::Param _settingsParam;
  48. QVBoxLayout* _InitListUi();
  49. QVBoxLayout* _InitAudioUi();
  50. QVBoxLayout* _InitOtherUi();
  51. QTime _recordTime;
  52. bool _isLocked = false;
  53. void _InitStatusBarUi();
  54. void _UpdateCaptureList();
  55. void _StartCapture(CaptureMethod method);
  56. void _StopCapture();
  57. void _StartPreview();
  58. void _DealCapture();
  59. void _StopPreview();
  60. bool _StartStream(std::string_view path, std::string_view format);
  61. void _StopStream();
  62. void _InitConnect();
  63. };