? ? ? 大家好,今天主要和大家聊一聊,如何使用QT中視頻播放器的方法。
?
目錄
第一:視頻播放器基本簡介
第二:視頻播放器頭文件說明
?第三:源文件的具體實(shí)現(xiàn)方法
第四:運(yùn)行效果顯示
第一:視頻播放器基本簡介
? ? ? ?與音樂播放器一樣使用QMediaPlayer 類,不同的是需要使用 setVideoOutput(QVideoWidget*) 設(shè)置一個視頻輸出窗口,好讓視頻在此窗口顯示,其他步驟基本都一樣。
? ? ? ?調(diào)用視頻播放器的功能,需要在工程文件.pro文件的第一行添加代碼如下:文章來源:http://www.zghlxwxcb.cn/news/detail-439898.html
QT += core gui multimedia multimediawidgets
第二:視頻播放器頭文件說明
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include <QMainWindow>
5 #include <QMediaPlayer>
6 #include <QMediaPlaylist>
7 #include <QPushButton>
8 #include <QSlider>
9 #include <QVBoxLayout>
10 #include <QHBoxLayout>
11 #include <QListWidget>
12 #include <QLabel>
13 #include <QSpacerItem>
14 #include <QVideoWidget>
15 #include <QDebug>
16
17 /* 媒體信息結(jié)構(gòu)體 */
18 struct MediaObjectInfo {
19 /* 用于保存視頻文件名 */
20 QString fileName;
21 /* 用于保存視頻文件路徑 */
22 QString filePath;
23 };
24
25 class MainWindow : public QMainWindow
26 {
27 Q_OBJECT
28
29 public:
30 MainWindow(QWidget *parent = nullptr);
31 ~MainWindow();
32
33 private:
34 /* 媒體播放器,用于播放視頻 */
35 QMediaPlayer *videoPlayer;
36
37 /* 媒體列表 */
38 QMediaPlaylist *mediaPlaylist;
39
40 /* 視頻顯示窗口 */
41 QVideoWidget *videoWidget;
42
43 /* 視頻列表 */
44 QListWidget *listWidget;
45
46 /* 播放進(jìn)度條 */
47 QSlider *durationSlider;
48
49 /* 音量條 */
50 QSlider *volumeSlider;
51
52 /* 視頻播放器按鈕 */
53 QPushButton *pushButton[5];
54
55 /* 水平布局 */
56 QHBoxLayout *hBoxLayout[3];
57
58 /* 水平容器 */
59 QWidget *hWidget[3];
60
61 /* 標(biāo)簽文本 */
62 QLabel *label[2];
63
64 /* 垂直容器 */
65 QWidget *vWidget[2];
66
67 /* 垂直界面 */
68 QVBoxLayout *vBoxLayout[2];
69
70 /* 視頻布局函數(shù) */
71 void videoLayout();
72
73 /* 主窗體大小重設(shè)大小函數(shù)重寫 */
74 void resizeEvent(QResizeEvent *event);
75
76 /* 媒體信息存儲 */
77 QVector<MediaObjectInfo> mediaObjectInfo;
78
79 /* 掃描本地視頻文件 */
80 void scanVideoFiles();
81
82 /* 媒體初始化 */
83 void mediaPlayerInit();
84 private slots:
85 /* 播放按鈕點(diǎn)擊 */
86 void btn_play_clicked();
87
88 /* 下一個視頻按鈕點(diǎn)擊 */
89 void btn_next_clicked();
90
91 /* 音量加 */
92 void btn_volmeup_clicked();
93
94 /* 音量減 */
95 void btn_volmedown_clicked();
96
97 /* 全屏 */
98 void btn_fullscreen_clicked();
99
100 /* 媒體狀態(tài)改變 */
101 void mediaPlayerStateChanged(QMediaPlayer::State);
102
103 /* 列表單擊 */
104 void listWidgetCliked(QListWidgetItem*);
105
106 /* 媒體列表項(xiàng)改變 */
107 void mediaPlaylistCurrentIndexChanged(int);
108
109 /* 媒體總長度改變 */
110 void musicPlayerDurationChanged(qint64);
111
112 /* 媒體播放位置改變 */
113 void mediaPlayerPositionChanged(qint64);
114
115 /* 播放進(jìn)度條松開 */
116 void durationSliderReleased();
117
118 /* 音量條松開 */
119 void volumeSliderReleased();
120 };
121 #endif // MAINWINDOW_H
?第三:源文件的具體實(shí)現(xiàn)方法
1 #include "mainwindow.h"
2 #include <QCoreApplication>
3 #include <QFileInfoList>
4 #include <QDir>
5
6 MainWindow::MainWindow(QWidget *parent)
7 : QMainWindow(parent)
8 {
9 /* 視頻播放器布局初始化 */
10 videoLayout();
11
12 /* 媒體初始化 */
13 mediaPlayerInit();
14
15 /* 掃描本地視頻 */
16 scanVideoFiles();
17
18 /* 設(shè)置按鈕的屬性 */
19 pushButton[0]->setCheckable(true);
20 pushButton[4]->setCheckable(true);
21
22 /* 按鈕連接信號槽 */
23 connect(pushButton[0], SIGNAL(clicked()),
24 this, SLOT(btn_play_clicked()));
25 connect(pushButton[1], SIGNAL(clicked()),
26 this, SLOT(btn_next_clicked()));
27 connect(pushButton[2], SIGNAL(clicked()),
28 this, SLOT(btn_volmedown_clicked()));
29 connect(pushButton[3], SIGNAL(clicked()),
30 this, SLOT(btn_volmeup_clicked()));
31 connect(pushButton[4], SIGNAL(clicked()),
32 this, SLOT(btn_fullscreen_clicked()));
}
第四:運(yùn)行效果顯示

?文章來源地址http://www.zghlxwxcb.cn/news/detail-439898.html
到了這里,關(guān)于linux系統(tǒng)中QT里面的視頻播放器的實(shí)現(xiàn)方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!