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

QT實現視頻播放器

這篇具有很好參考價值的文章主要介紹了QT實現視頻播放器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.我們需要的頭文件

qt播放視頻,qt,開發(fā)語言

2. .cpp文件

#include "videowin.h"
#include "ui_videowin.h"
#include <QFileDialog>
#include <QTime>
#include <QMessageBox>
#include <QFont>
videowin::videowin(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::videowin)
{
    m_pWidget = new QWidget(this);
    m_pWidget->setGeometry(0, 0, 1152, 616);
    QPalette pal(m_pWidget->palette());

    //設置背景黑色
    pal.setColor(QPalette::Background, Qt::black);
    m_pWidget->setAutoFillBackground(true);
    m_pWidget->setPalette(pal);
    m_pWidget->show();

    ui->setupUi(this);

    this->setWindowIcon(QIcon(":/icon_video/video.png"));
    this->setWindowTitle("大魚播放器");
    this->i = 0;
    this->n = 0;
    this->j = 0;
    ui->verticalSlider->hide();
    ui->listWidget->hide();
    //this->player->setVolume(position);
    this->videoWidget = new QVideoWidget(this);
    this->videoWidget->setGeometry(50,40,720,470);//播放視頻大小位置
    this->player = new QMediaPlayer(this);
    this->ui->label->setText("00:00/00:00");//顯示時間的
    this->ui->label->setStyleSheet("color:white");
    this->ui->label_2->setStyleSheet("color:white");
    this->ui->label_2->setFont(QFont("阿里媽媽數黑體",16));
    this->timer = new QTimer(this);//定時器
    this->ui->pushButton->setIcon(this->style()->standardPixmap(QStyle::SP_MediaPlay));//給按鍵設置類型
    //this->time = new QTime(this);
    connect(this->ui->listWidget,SIGNAL(itemDoubleClicked(QListWidgetItem *)),this,SLOT(changeMovie(QListWidgetItem *)));
    connect(this->timer,SIGNAL(timeout()),this,SLOT(updateTime_1()));
    connect(this->player,SIGNAL(durationChanged(qint64)),this,SLOT(getDuration_1(qint64)));
    connect(this->player,SIGNAL(positionChanged(qint64)),this,SLOT(setSliderValue(qint64)));
}
videowin::~videowin()
{
    delete ui;
}


//獲取文件信息
void videowin::on_pushButton_7_clicked()
{
    //this->namelist.clear();
    //this->ui->listWidget->clear();
    this->namelist =QFileDialog::getOpenFileNames(this,"選擇",".","WMV(*.wmv);;AVI(*.avi);;MP4(*.MP4)");
    for(int i = 0;i<namelist.size();i++)
    {
        QFileInfo fileInfos(namelist.at(i));//獲取文件信息
        QListWidgetItem *item = new QListWidgetItem(fileInfos.fileName(),this->ui->listWidget);
        item->setToolTip(namelist.at(i));
        this->ui->listWidget->addItem(item);
    }
}

//雙擊能實現播放視頻
void videowin::changeMovie(QListWidgetItem *item)
{
    this->index = this->ui->listWidget->currentRow();
    //設置播放器要播放的視頻
    this->player->setMedia(QUrl(item->toolTip()));
    //獲取視頻名字
    this->name = item->text()+"   ";
    this->ui->label_2->setText(this->name);
    QFont ft;
    ft.setPointSize(14);
    this->ui->label_2->setFont(ft);
    //播放
    this->player->setVideoOutput(this->videoWidget);
    this->player->play();
    this->ui->pushButton->setIcon(this->style()->standardPixmap(QStyle::SP_MediaPause));
    this->timer->start(1000);
}


//暫停鍵
void videowin::on_pushButton_clicked()
{
    int state = this->player->state();//獲取播放器的狀態(tài)
    if(state == QMediaPlayer::PausedState)//暫停
    {
        this->player->play();
        this->ui->pushButton->setIcon(this->style()->standardPixmap(QStyle::SP_MediaPause));

    }
    else if(state == QMediaPlayer::PlayingState)//播放中
    {
        this->player->pause();
        this->ui->pushButton->setIcon(this->style()->standardPixmap(QStyle::SP_MediaPlay));
    }
}
//顯示視頻進度和時長
void videowin::updateTime_1()
{
    this->n++;//時間一到,顯示名稱的一半
    if(this->n == this->name.size())
    {
        this->n = 0;
    }
    this->ui->label_2->setText(this->name.mid(this->n));//顯示名稱
    qint64 dur = this->player->duration();//獲取到總時長
    qint64 pos = this->player->position();//獲取當前的播放位置
    QTime time1(0,0,0,0),time2(0,0,0,0);//顯示:轉成 00:00
    this->ui->label->setText(time1.addMSecs(pos).toString("mm:ss") +"/" +time2.addMSecs(dur).toString("mm:ss"));
}

void videowin::getDuration_1(qint64 duration)
{
    qDebug()<<duration;
    this->ui->horizontalSlider->setRange(0,duration);//設置進度條范圍
    this->ui->horizontalSlider->setValue(0);

}
//視頻滑塊
void videowin::on_horizontalSlider_sliderMoved(int position)
{
    this->player->setPosition(position);//根據滑塊的位置設置播放音樂的位置
}

//下集
void videowin::on_pushButton_2_clicked()
{
    if(this->namelist.empty())
    {
        QMessageBox::information(this,"提示","沒有可播放的視頻");
    }
    else
    {
        this->index++;
        if(this->index == this->namelist.size())
        {
            QMessageBox::information(this,"提示","已經是最后一個視頻了");
            this->index--;
        }
        this->player->stop();
        QFileInfo fileInfo(this->namelist.at(this->index));
        this->name = fileInfo.fileName()+"   ";
        this->ui->label->setText(this->name);
        this->player->setMedia(QUrl(this->namelist.at(this->index)));
        this->player->play();
    }
}
//控制音量條
void videowin::on_pushButton_4_clicked()
{

    if(i == 0)
    {
        ui->verticalSlider->show();
        i = 1;
    }
    else if( i == 1)
    {
        ui->verticalSlider->hide();
        i = 0;
    }

}
//調節(jié)音量
void videowin::on_verticalSlider_sliderMoved(int position)
{
    this->player->setVolume(position);
}
//更新視頻滑塊
void videowin::setSliderValue(qint64 position)
{
     this->ui->horizontalSlider->setValue(position);
}
//選集按鈕
void videowin::on_pushButton_5_clicked()
{
    if(j == 0)
    {
        ui->listWidget->show();
        j = 1;
    }
    else if( j == 1)
    {
        ui->listWidget->hide();
        j = 0;
    }
}

3.ui界面

qt播放視頻,qt,開發(fā)語言?

?文章來源地址http://www.zghlxwxcb.cn/news/detail-521535.html

?

到了這里,關于QT實現視頻播放器的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • 【OpenCV+Qt】實現簡易視頻播放器——支持進度條拖動

    【OpenCV+Qt】實現簡易視頻播放器——支持進度條拖動

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

    2023年04月08日
    瀏覽(24)
  • Qt 實現簡易的視頻播放器,功能選擇視頻,播放,暫停,前進,后退,進度條拖拉,視頻時長顯示

    Qt 實現簡易的視頻播放器,功能選擇視頻,播放,暫停,前進,后退,進度條拖拉,視頻時長顯示

    1.效果圖 2.代碼實現 2.1 .pro文件 2.2 .h文件 2.3 .cpp文件

    2024年04月12日
    瀏覽(29)
  • linux系統(tǒng)中QT里面的視頻播放器的實現方法

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

    ? ? ? 大家好,今天主要和大家聊一聊,如何使用QT中視頻播放器的方法。 ? 目錄 第一:視頻播放器基本簡介 第二:視頻播放器頭文件說明 ?第三:源文件的具體實現方法 第四:運行效果顯示 ? ? ? ?與音樂播放器一樣使用 QMediaPlayer 類,不同的是需要使用 setVideoOutput(QVi

    2024年02月04日
    瀏覽(27)
  • 用Qt開發(fā)的ffmpeg流媒體播放器,支持截圖、錄像,支持音視頻播放,支持本地文件播放、網絡流播放

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

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

    2024年02月03日
    瀏覽(116)
  • 用VLC開發(fā)視頻播放器/組件(兩種方式:libVLC / VLC-Qt)

    用VLC開發(fā)視頻播放器/組件(兩種方式:libVLC / VLC-Qt)

    MSVC-2015 Qt 5.14.2 QCreator 參考:心流劍 libVLC 各版本 下載鏈接 我的下載版本為:3.0.11 sdk/lib文件夾目錄 qmake vlc 部分的配置(路徑根據自己的修改) 只需要 : libvlc.lib、libvlccore.lib 把 plugins 文件夾、libvlc.dll、libvlccore.dll 復制到 bin_Debug / bin_Release VLC-Qt 下載地址 參考鏈接1:鏈接

    2024年02月12日
    瀏覽(23)
  • QT簡單的視頻播放器

    QT簡單的視頻播放器

    1.功能 選擇路徑下的固定視頻格式文件播放,對應的音頻和視頻同步播放 2.新建一個不含UI界面的QT工程 特別注意:QT中的路徑名不能含中文 ? 設置一個不含UI界面的工程 取消構建目錄 因為要引入視頻播放器的模塊,我們在pro中引入對應的模塊 因為要引入布局格式,所以我們

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

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

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

    2023年04月09日
    瀏覽(27)
  • 瀏覽器網頁內嵌Qt-C++音視頻播放器的實現,支持軟硬解碼,支持音頻,支持錄像截圖,支持多路播放等,提供源碼工程下載

    瀏覽器網頁內嵌Qt-C++音視頻播放器的實現,支持軟硬解碼,支持音頻,支持錄像截圖,支持多路播放等,提供源碼工程下載

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

    2024年01月17日
    瀏覽(100)
  • 嵌入式Qt 開發(fā)一個音樂播放器

    嵌入式Qt 開發(fā)一個音樂播放器

    上篇文章:RK3568源碼編譯與交叉編譯環(huán)境搭建,進行了OK3568開發(fā)板軟件開發(fā)環(huán)境搭建,通過編譯RK3568的源碼,可以得到Qt開發(fā)的交叉編譯相關工具。 本篇,就來在搭建好的軟件開發(fā)中,進行Qt軟件的開發(fā)測試。由于Qt是支持跨平臺的,因此本篇的音樂播放器,先在Windows上編寫

    2024年02月02日
    瀏覽(41)
  • Qt之基于QMediaPlayer的音視頻播放器(支持常見音視頻格式)

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

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

    2024年02月02日
    瀏覽(31)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包