Qt5开发视频播放器的项目实践

  #ifndef WIDGET_H

  #define WIDGET_H

  #include

  #include //播放器

  #include //播放窗口

  #include //播放列表

  #include

  #include //文件窗口

  #include

  #include

  #include

  #include

  #include

  #include

  #include

  #include "globalkeyfilter.h"

  namespace Ui

  {

  class Widget;

  }

  class QMediaPlayer;

  class QMediaPlaylist;

  class QVideoWidget;

  class Widget : public QWidget

  {

  Q_OBJECT

  public:

  explicit Widget(QWidget* parent = 0);

  void setget_Alltime(qint64 playtime);//获取视频时长并设置到标签

  void setget_currenttime(qint64 playtime);//获取当时播放位置并设置

  void settimeslider(qint64 playtime);//设置进度条

  void exitFullScreen(); // 退出全屏

  void togglePlayback(); // 暂停/播放

  ~Widget();

  private slots:

  void on_btn_open_clicked();//打开音视频

  void on_btn_start_clicked();//播放

  void on_voice_control_valueChanged(int value);//控制声音

  void on_btn_fullshow_clicked();//全屏显示

  void getduration(qint64 playtime); //获取时间改变信号

  void getposition(qint64 playtime); //获取当前播放位置

  void on_btn_ht_clicked();//上一个音视频

  void on_btn_qj_clicked();//下一个音视频

  void on_listWidget_doubleClicked(const QModelIndex& index);

  private:

  Ui::Widget* ui;

  QStringList m_strlist; //文件名列表

  QMediaPlayer* m_pMediaPlayer; //播放器

  QVideoWidget* m_pVideoWidget; //播放窗口

  QMediaPlaylist* m_MediaPlaylist; //播放列表

  QMediaPlayer::State m_state; //播放状态

  int m_hour; //视频总时长

  int m_munete; //分钟

  int m_second; //秒

  bool m_sliderstate; //滑块是否被选中的状态

  int m_slider_crtval; //滑块当前值

  GlobalKeyFilter* m_globalKeyFilter; // GlobalKeyFilter 类

  };

  #endif // WIDGET_H