国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

linux系統(tǒng)中QT里面的視頻播放器的實(shí)現(xiàn)方法

這篇具有很好參考價值的文章主要介紹了linux系統(tǒng)中QT里面的視頻播放器的實(shí)現(xiàn)方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

? ? ? 大家好,今天主要和大家聊一聊,如何使用QT中視頻播放器的方法。

linux系統(tǒng)中QT里面的視頻播放器的實(shí)現(xiàn)方法

?

目錄

第一:視頻播放器基本簡介

第二:視頻播放器頭文件說明

?第三:源文件的具體實(shí)現(xiàn)方法

第四:運(yùn)行效果顯示


第一:視頻播放器基本簡介

? ? ? ?與音樂播放器一樣使用QMediaPlayer 類,不同的是需要使用 setVideoOutput(QVideoWidget*) 設(shè)置一個視頻輸出窗口,好讓視頻在此窗口顯示,其他步驟基本都一樣。

? ? ? ?調(diào)用視頻播放器的功能,需要在工程文件.pro文件的第一行添加代碼如下:

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()));
}
分析:與上一小節(jié)音樂播放器的一樣,在構(gòu)造函數(shù)里布局初始化,然后執(zhí)行掃描本地視頻文件。
之后就是一些信號槽的連接,基本上就是這么一個流程了。

第四:運(yùn)行效果顯示

? ? ? ? ?將視頻文件video放到可執(zhí)行程序的同級目錄下即可。
linux系統(tǒng)中QT里面的視頻播放器的實(shí)現(xià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)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【OpenCV+Qt】實(shí)現(xiàn)簡易視頻播放器——支持進(jìn)度條拖動

    【OpenCV+Qt】實(shí)現(xiàn)簡易視頻播放器——支持進(jìn)度條拖動

    OpenCV實(shí)現(xiàn)視頻播放器,其思路大致就是在線程中使用OpenCV中的VideoCapture循環(huán)讀取本地視頻的每一幀Mat,然后發(fā)送到界面轉(zhuǎn)換成QImage進(jìn)行顯示,而進(jìn)度條拖動則用到了VideoCapture中的set函數(shù),進(jìn)度條則是使用Qslider;并且通過自定義新的進(jìn)度條類實(shí)現(xiàn)點(diǎn)擊跳轉(zhuǎn)功能; 效果: 1.進(jìn)行

    2023年04月08日
    瀏覽(24)
  • QT簡單的視頻播放器

    QT簡單的視頻播放器

    1.功能 選擇路徑下的固定視頻格式文件播放,對應(yīng)的音頻和視頻同步播放 2.新建一個不含UI界面的QT工程 特別注意:QT中的路徑名不能含中文 ? 設(shè)置一個不含UI界面的工程 取消構(gòu)建目錄 因?yàn)橐胍曨l播放器的模塊,我們在pro中引入對應(yīng)的模塊 因?yàn)橐氩季指袷?,所以我?/p>

    2024年02月03日
    瀏覽(23)
  • 瀏覽器網(wǎng)頁內(nèi)嵌Qt-C++音視頻播放器的實(shí)現(xiàn),支持軟硬解碼,支持音頻,支持錄像截圖,支持多路播放等,提供源碼工程下載

    瀏覽器網(wǎng)頁內(nèi)嵌Qt-C++音視頻播放器的實(shí)現(xiàn),支持軟硬解碼,支持音頻,支持錄像截圖,支持多路播放等,提供源碼工程下載

    ????在瀏覽器中實(shí)現(xiàn)播放RTSP實(shí)時視頻流,?體上有如下?個?案: ?案一:瀏覽器插件?案 ActiveX、NPAPI、PPAPI ????ActiveX插件適用于IE瀏覽器,NPAPI與PPAPI插件適用于谷歌瀏覽器,不過這些插件都已經(jīng)不被瀏覽器所支持。 ?案二:先轉(zhuǎn)碼再轉(zhuǎn)流?案 ?????作原理是架設(shè)一

    2024年01月17日
    瀏覽(100)
  • java swing(GUI) MySQL實(shí)現(xiàn)的視頻播放器系統(tǒng)源碼+運(yùn)行教程

    java swing(GUI) MySQL實(shí)現(xiàn)的視頻播放器系統(tǒng)源碼+運(yùn)行教程

    今天給大家演示一下由Java swing實(shí)現(xiàn)的一款簡單的多媒體播放器,項(xiàng)目源碼我會放在我的網(wǎng)站上,并配有視頻配置教程,保證運(yùn)行起來的。這個小播放器實(shí)現(xiàn)了視頻、音頻文件的播放、暫停、快進(jìn)、快退、停止、全屏等功能,還有歷史記錄功能,調(diào)用的是vcl庫的播放內(nèi)核。接下

    2023年04月08日
    瀏覽(21)
  • Qt音視頻開發(fā)41-文件推流(支持網(wǎng)頁和播放器播放并切換進(jìn)度)

    Qt音視頻開發(fā)41-文件推流(支持網(wǎng)頁和播放器播放并切換進(jìn)度)

    本功能最初也是有一些人提過類似的需求,就是能不能將本地的音視頻文件,通過純Qt程序推流出去,然后用戶可以直接在網(wǎng)頁上播放,也可以用各種播放器播放,然后還可以任意切換播放進(jìn)度,其實(shí)說白了就是個文件服務(wù)器,用戶通過網(wǎng)絡(luò)地址訪問以后,告訴對方當(dāng)前是媒

    2024年02月01日
    瀏覽(42)
  • 【QT項(xiàng)目:視頻播放器——Qt opengl編程】通過shader完成顯示yuv

    【QT項(xiàng)目:視頻播放器——Qt opengl編程】通過shader完成顯示yuv

    通過Qt opengl不是為了3D繪制,而是為了將視頻繪制起來 使用opengl 可以極大降低yuv轉(zhuǎn)rgb的轉(zhuǎn)換開銷 1、為什么用QT的opengl 簡單,界面可以自動疊加 void paintGL(); // 具體的繪制寫在該函數(shù)里 void initializeGL(); // 材質(zhì)初始化 void resizeGL(int width, int height); // 當(dāng)窗口發(fā)生變化(縮放) QO

    2023年04月09日
    瀏覽(27)
  • Qt之基于QMediaPlayer的音視頻播放器(支持常見音視頻格式)

    Qt之基于QMediaPlayer的音視頻播放器(支持常見音視頻格式)

    Qt自帶了一個Media Player的例子,如下圖所示: 但是運(yùn)行這個例子機(jī)會發(fā)現(xiàn),連最基本的MP4格式視頻都播放不了。因?yàn)镼MediaPlayer是個殼(也可以叫框架),依賴本地解碼器,視頻這塊默認(rèn)基本上就播放個MP4,甚至連MP4都不能播放,如果要支持其他格式需要下載k-lite或者LAVFilter

    2024年02月02日
    瀏覽(31)
  • QT軟件開發(fā)-基于FFMPEG設(shè)計(jì)視頻播放器-軟解圖像(一)

    QT軟件開發(fā)-基于FFMPEG設(shè)計(jì)視頻播放器-軟解圖像(一)

    QT軟件開發(fā)-基于FFMPEG設(shè)計(jì)視頻播放器-CPU軟解視頻(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT軟件開發(fā)-基于FFMPEG設(shè)計(jì)視頻播放器-GPU硬解視頻(二) https://xiaolong.blog.csdn.net/article/details/126833434 QT軟件開發(fā)-基于FFMPEG設(shè)計(jì)視頻播放器-解碼音頻(三) https://xiaolong.blog.csdn.

    2023年04月08日
    瀏覽(95)
  • 用Qt開發(fā)的ffmpeg流媒體播放器,支持截圖、錄像,支持音視頻播放,支持本地文件播放、網(wǎng)絡(luò)流播放

    用Qt開發(fā)的ffmpeg流媒體播放器,支持截圖、錄像,支持音視頻播放,支持本地文件播放、網(wǎng)絡(luò)流播放

    本工程qt用的版本是5.8-32位,ffmpeg用的版本是較新的5.1版本。它支持TCP或UDP方式拉取實(shí)時流,實(shí)時流我采用的是監(jiān)控攝像頭的RTSP流。音頻播放采用的是QAudioOutput,視頻經(jīng)ffmpeg解碼并由YUV轉(zhuǎn)RGB后是在QOpenGLWidget下進(jìn)行渲染顯示。本工程的代碼有注釋,可以通過本博客查看代碼或者

    2024年02月03日
    瀏覽(116)
  • Qt實(shí)現(xiàn)本地音樂播放器

    Qt實(shí)現(xiàn)本地音樂播放器

    ?mainwindow.h mainwindow.cpp qss: 源碼:Qt與學(xué)習(xí)通頁面: 記錄與Qt相關(guān)的代碼 - Gitee.com

    2024年02月12日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包