12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #ifndef VideoPlayer_H
- #define VideoPlayer_H
- #include <QWidget>
- #include <QThread>
- #include <QTimer>
- #include <QSemaphore>
- class DecodeVedio;
- class VideoPlayer : public QWidget
- {
- Q_OBJECT
- public:
- explicit VideoPlayer(QWidget *parent = nullptr);
- ~VideoPlayer();
- void openPlayVedio(const QString& fileName);
- bool play();
- void pause();
- void stop();
-
- void backward(qint64 ms);
- void forward(qint64 ms);
- bool getPlayStatus() { return m_playStatus; }
- qint64 getDuration();
- qint64 getCurrentPos();
- void setCurrentPos(qint64 pos);
- void setPlayWidgetSize(int width,int height);
- void setPlayWidget(QWidget* widget, bool flag = false);
- void setPreviewImage(int num = 2);
- void setFPS(int fps);
-
- signals:
- void signal_playCompleted();
- void signal_refreshImage();
- protected:
- void paintEvent(QPaintEvent *event) override;
- void resizeEvent(QResizeEvent *event) override;
- void refreshOneUIUntilHave();
-
- void mouseDoubleClickEvent(QMouseEvent *event) override;
- private slots:
- void do_refreshUI();
- void do_refreshSamImage();
- void do_playCompleted();
- private:
- bool isLocalFile(const QString& fileName);
- private:
- bool m_isLocalFile = false;
- QString m_fileName;
- QTimer m_timerRefreshUI;
- int m_srcWidth = 0;
- int m_srcHeight = 0;
- int m_nowWidth = 0;
- int m_nowHeight = 0;
- int m_fps = 0;
- int m_interval = 0;
- qint64 m_duration = 0;
- DecodeVedio* m_decodeVedio = nullptr;
- QThread* m_threadDecode = nullptr;
- QImage* m_image = nullptr;
- bool m_playStatus = false;
- bool m_isOpenFile = false;
- QSemaphore* m_semRefresh = nullptr;
- int m_previewImage = 0;
-
-
- };
- #endif
|