MainWindow.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QtCharts/QChartView>
  5. #include <QtCharts/QLineSeries>
  6. #include <QtCharts/QChart>
  7. #include <QtCharts/QDateTimeAxis>
  8. #include <QtCharts/QValueAxis>
  9. #include <QLabel>
  10. #include "AudioReader/ReadAACFileThread.h"
  11. #include "AudioReader/ReadAudioFileThread.h"
  12. QT_CHARTS_USE_NAMESPACE
  13. namespace Ui {
  14. class MainWindow;
  15. }
  16. class MainWindow : public QMainWindow, public AudioPlayerCallBack
  17. {
  18. Q_OBJECT
  19. public:
  20. explicit MainWindow(QWidget *parent = nullptr);
  21. ~MainWindow();
  22. private:
  23. Ui::MainWindow *ui;
  24. ReadAudioFileThread *mReadAudioFileThread;
  25. ReadAACFileThread *mReadAACFileThread;
  26. QLabel *mShowProgressLabel; //显示进度用的
  27. ///显示左声道波形图的图表
  28. QChartView *mChartView_Left;
  29. ///显示右声道波形图的图表
  30. QChartView *mChartView_Right;
  31. ///当前播放的数据
  32. QChartView *mCurrentChartView_Left;
  33. QChartView *mCurrentChartView_Right;
  34. QList<std::list<float>> mLeftChannelDbValueList;
  35. QList<std::list<float>> mRightChannelDbValueList;
  36. ///以下为回调函数,用于接受ReadAudioFileThread类传给界面的数据
  37. protected:
  38. ///获取到音频波形图数据
  39. void onGetPcmWaveValues(const std::list<float> &leftChannelValues, const std::list<float> &rightChannelValues) override;
  40. ///当前播放的一帧音频数据
  41. void onGetPcmFrame(PCMFramePtr pcmFramePtr) override;
  42. void onUpdatePlayingValue(const float &leftChannel,
  43. const float &rightChannel,
  44. const std::list<float> &leftChannelDbValues,
  45. const std::list<float> &rightChannelDbValues,
  46. const float &progress) override;
  47. void onUpdatePlayingTime(const uint32_t &totalTime, const uint32_t &currentTime) override;
  48. };
  49. #endif // MAINWINDOW_H