av_recorder.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. class AvRecorder : public QWidget
  15. {
  16. Q_OBJECT
  17. public:
  18. AvRecorder(QWidget* parent = nullptr);
  19. ~AvRecorder();
  20. private:
  21. AudioRecorder m_audioRecorder;
  22. VideoRecorder m_videoRecorder;
  23. AvMuxer _avMuxer;
  24. // VideoRender _videoRender;
  25. OpenGLVideoWidget* glWidget;
  26. AudioWidget* _microphoneWidget = nullptr;
  27. AudioWidget* _speakerWidget = nullptr;
  28. QPushButton* _recordBtn = nullptr;
  29. QPushButton* _liveBtn = nullptr;
  30. QPushButton* _settingsBtn = nullptr;
  31. QCheckBox* _isDrawCursorBox = nullptr;
  32. Timer _videoRenderTimer;
  33. QTimer _otherTimer;
  34. QListWidget* _captureListWidget = nullptr;
  35. QPushButton* _updateListBtn = nullptr;
  36. bool _isRecord = false;
  37. bool _isLive = false;
  38. void _InitUi();
  39. QComboBox* _captureMethodBox = nullptr;
  40. QLabel* _captureStatusLabel = nullptr;
  41. QLabel* _captureTimeLabel = nullptr;
  42. QLabel* _fpsLabel = nullptr;
  43. QLabel* _videoEncodeLabel = nullptr;
  44. QLabel* _videolossRate = nullptr;
  45. SettingsPage::Param _settingsParam;
  46. QVBoxLayout* _InitListUi();
  47. QVBoxLayout* _InitAudioUi();
  48. QVBoxLayout* _InitOtherUi();
  49. QTime _recordTime;
  50. bool _isLocked = false;
  51. void _InitStatusBarUi();
  52. void _UpdateCaptureList();
  53. void _StartCapture(VideoCapturer::Method method);
  54. void _StopCapture();
  55. void _StartPreview();
  56. void _DealCapture();
  57. void _StopPreview();
  58. bool _StartStream(std::string_view path, std::string_view format);
  59. void _StopStream();
  60. void _InitConnect();
  61. };