QT製作視頻播放器

應項目需要,我之前用ffmpeg合成的視頻需要用一個界面播放,思來想去自學QT來做這個工作。

首先我係統是ubuton16.0.4,先安裝QT工具,然後直接開發。建議新來的朋友先自學一下QT的LayOut佈局設計,使用佈局會讓你的控件更整齊,而且放在佈局裏的控件在設計好之後還可以跟着窗口的伸縮而伸縮,十分好用。網上很多將界面佈局都用的代碼來生成控件,這對QT初學者很不友好,我推薦一篇文章教大家用designer來設計界面,佈局設計,十分好用。

先看一下我做的很醜陋的佈局

右邊是我的工具輸入,大家可以不用關心,播放視頻主要是在右邊,打開按鈕可以讓你選擇視頻文件,播放按鈕來控制視頻的暫停和播放的,視頻一打開會有進度時間進度條的顯示。大家看代碼

    //選擇視頻文件
    QString filename = QFileDialog::getOpenFileName(this,tr("選擇視頻文件"),"/home/cidi/Documents/gxs/Qt-MediaPlayer/build-MediaPlayer-Desktop_Qt_5_7_0_GCC_64bit-Debug/new_video/",
                                                    tr("視頻格式(*.avi *.mp4 *.flv *.mkv *.mpeg)"));
    QFile file(filename);
    if(!file.open(QIODevice::ReadOnly))
    {
        QMessageBox::information(NULL, "Title", "Content", QMessageBox::Ok,
                                 QMessageBox::Ok);
        return;
    }

    if(if_reload)
    {//重新加載視頻時,重置以下變量
        delete layout_video;
        delete player;
        delete widget;
        delete timer;
    }
    if_reload = true;

    //實例化三個全局變量
    layout_video = new QVBoxLayout;
    player = new QMediaPlayer;
    widget = new QVideoWidget;
    //設置視頻播放區域與Label的邊距
    layout_video->setMargin(1);
    //根據label_player尺寸設置播放區域
    widget->resize(ui->label_play_video->size());
    layout_video->addWidget(widget);
    ui->label_play_video->setLayout(layout_video);
    player->setVideoOutput(widget);

    //設置播放器
    player->setMedia(QUrl::fromLocalFile(filename));
    //play_state爲true表示播放,false表示暫停
    play_state = true;
    //ui->pushButton_Volume->setEnabled(true);
    ui->horizontalSlider->setEnabled(true);
    ui->horizontalSlider->setRange(0,maxValue);
    //啓用播放/暫停按鈕,並將其文本設置爲“暫停”
    ui->pushButton_Player->setEnabled(true);
    ui->pushButton_Player->setText("暫停");

    timer = new QTimer();
    timer->setInterval(1000);
    timer->start();

    connect(timer,SIGNAL(timeout()),this,SLOT(onTimerOut()));
    connect(player,SIGNAL(durationChanged(qint64)),this,SLOT(setEndTime(qint64)));
       
    //播放器開啓
    player->play();

這是整個視頻播放器的主要代碼,比較簡單,大家看一下效果圖。

整個項目我放在github上了,直接下載下來在QT上編譯運行就可以了。https://github.com/CoolMonKKey/Work.git

項目在cutVideo文件夾下,有什麼問題可以留言問我噢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章