#ifndef FACEXMAINWINDOW_H
|
#define FACEXMAINWINDOW_H
|
|
#include <QMainWindow>
|
#include <QMouseEvent>
|
#include <QRect>
|
#include <QMediaPlayer> //播放器
|
#include <QMediaPlaylist> //播放队列
|
#include <QVideoWidget> //视频显示窗口
|
#include "qffmpeg.h"
|
#include "rtspthread.h"
|
|
//必须加以下内容,否则编译不能通过,为了兼容C和C99标准
|
#ifndef INT64_C
|
#define INT64_C
|
#define UINT64_C
|
#endif
|
|
//因为#include <libavcodec/avcodec.h>是C文件,所以需要用extern
|
extern "C"
|
{
|
#include <libavcodec/avcodec.h> //实现音视频的编解码功能
|
#include <libavformat/avformat.h> //实现音视频文件的读取和写入功能,支持多种音视频格式
|
#include <libavfilter/avfilter.h>
|
#include <libswscale/swscale.h>
|
#include <libavutil/frame.h>
|
}
|
|
QT_BEGIN_NAMESPACE
|
namespace Ui {
|
class FaceXMainWindow;
|
}
|
QT_END_NAMESPACE
|
|
class FaceXMainWindow : public QMainWindow
|
{
|
Q_OBJECT
|
|
public:
|
explicit FaceXMainWindow(QWidget *parent = 0);
|
~FaceXMainWindow();
|
|
void mousePressEvent(QMouseEvent *event)override;
|
void mouseMoveEvent(QMouseEvent *event)override;
|
void mouseReleaseEvent(QMouseEvent *event)override;
|
void mouseDoubleClickEvent(QMouseEvent *event)override;
|
|
|
private slots:
|
void on_btnSelect_clicked();
|
|
void on_toolButton_clicked();
|
|
void on_toolButton_3_clicked();
|
|
void on_toolButton_2_clicked();
|
|
void on_btn_play_clicked();
|
|
void on_btn_cut_clicked();
|
|
void SetImage(const QImage &image);
|
|
|
private:
|
Ui::FaceXMainWindow *ui;
|
QPoint offset;
|
|
QRect dragArea;
|
bool isDragging;
|
|
QMediaPlayer *m_player;
|
QMediaPlaylist *m_playerlist;
|
QVideoWidget *m_videowidget;
|
|
QFFmpeg *m_ffmpeg;
|
RtspThread *m_rtspThread;
|
|
void setPlayButtonIcon(bool isPlaying);
|
};
|
|
#endif // FACEXMAINWINDOW_H
|